home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1999 January / EnigmA AMIGA RUN 33 (1999)(G.R. Edizioni)(IT)[!][issue 1999-01].iso / earcd / apus / boothack / old / bh980723.lha / bh980723 / linuxboot.s < prev    next >
Text File  |  1997-02-22  |  99KB  |  7,212 lines

  1. #NO_APP
  2. gcc2_compiled.:
  3. ___gnu_compiled_c:
  4. .data
  5.     .even
  6. _boardresetdb:
  7.     .word 2145
  8.     .word 33
  9.     .long LC0
  10.     .long _reset_rb3
  11.     .word 2195
  12.     .word 6
  13.     .long LC1
  14.     .long _reset_piccolo
  15.     .word 2195
  16.     .word 11
  17.     .long LC2
  18.     .long _reset_sd64
  19.     .word 2167
  20.     .word 201
  21.     .long LC3
  22.     .long _reset_ariadne
  23.     .word 2121
  24.     .word 1
  25.     .long LC4
  26.     .long _reset_hydra
  27. .text
  28. LC4:
  29.     .ascii "Hydra\0"
  30. LC3:
  31.     .ascii "Ariadne\0"
  32. LC2:
  33.     .ascii "SD64\0"
  34. LC1:
  35.     .ascii "Piccolo\0"
  36. LC0:
  37.     .ascii "Rainbow 3\0"
  38. .globl _amiga_models
  39. .data
  40.     .even
  41. _amiga_models:
  42.     .long LC5
  43.     .long LC6
  44.     .long LC7
  45.     .long LC8
  46.     .long LC9
  47.     .long LC10
  48.     .long LC11
  49.     .long LC12
  50.     .long LC13
  51.     .long LC14
  52.     .long LC15
  53.     .long LC16
  54.     .long LC17
  55.     .long LC18
  56.     .long LC19
  57. .text
  58. LC19:
  59.     .ascii "Draco\0"
  60. LC18:
  61.     .ascii "CD32\0"
  62. LC17:
  63.     .ascii "CDTV\0"
  64. LC16:
  65.     .ascii "Amiga 4000T\0"
  66. LC15:
  67.     .ascii "Amiga 4000\0"
  68. LC14:
  69.     .ascii "Amiga 3000+\0"
  70. LC13:
  71.     .ascii "Amiga 3000T\0"
  72. LC12:
  73.     .ascii "Amiga 3000\0"
  74. LC11:
  75.     .ascii "Amiga 2500\0"
  76. LC10:
  77.     .ascii "Amiga 2000\0"
  78. LC9:
  79.     .ascii "Amiga 1200\0"
  80. LC8:
  81.     .ascii "Amiga 1000\0"
  82. LC7:
  83.     .ascii "Amiga 600\0"
  84. LC6:
  85.     .ascii "Amiga 500+\0"
  86. LC5:
  87.     .ascii "Amiga 500\0"
  88. .globl _first_amiga_model
  89.     .even
  90. _first_amiga_model:
  91.     .long 1
  92. .globl _last_amiga_model
  93.     .even
  94. _last_amiga_model:
  95.     .long 15
  96. LC20:
  97.     .ascii "\12Linux/m68k Amiga Bootstrap version 5.5\12\0"
  98. LC21:
  99.     .ascii "Copyright 1993,1994 by Hamish Macdonald and Greg Harp\12\12\0"
  100. LC22:
  101.     .ascii "Warning: too many AutoConfig devices. Ignoring device at 0x%08lx\12\0"
  102. LC23:
  103.     .ascii "A3640 MapROM detected.\12\0"
  104. LC24:
  105.     .ascii "A3000 shadowed Kickstart detected.\12\0"
  106. LC25:
  107.     .ascii "ZKick detected.\12\0"
  108. LC26:
  109.     .ascii "Warning: too many memory blocks. Ignoring block of %ldK at 0x%08x\12\0"
  110. LC27:
  111.     .ascii "%s \0"
  112. LC28:
  113.     .ascii "Amiga \0"
  114. LC29:
  115.     .ascii "CPU: \0"
  116. LC30:
  117.     .ascii "68020 (Do you have an MMU?)\0"
  118. LC31:
  119.     .ascii "68030\0"
  120. LC32:
  121.     .ascii "68040\0"
  122. LC33:
  123.     .ascii "68060\0"
  124. LC34:
  125.     .ascii "Insufficient for Linux.  Aborting...\12\0"
  126. LC35:
  127.     .ascii "SysBase->AttnFlags = 0x%08lx\12\0"
  128. LC36:
  129.     .ascii " with 68881 FPU\0"
  130. LC37:
  131.     .ascii " with 68882 FPU\0"
  132. LC38:
  133.     .ascii " with internal FPU\0"
  134. LC39:
  135.     .ascii " without FPU\0"
  136. LC40:
  137.     .ascii ", old or unknown chipset\0"
  138. LC41:
  139.     .ascii ", OCS\0"
  140. LC42:
  141.     .ascii ", ECS\0"
  142. LC43:
  143.     .ascii ", AGA chipset\0"
  144. LC44:
  145.     .ascii "\12\12\0"
  146. LC45:
  147.     .ascii "Command line is '%s'\12\0"
  148. LC46:
  149.     .ascii "Vertical Blank Frequency: %ldHz\12\0"
  150. LC47:
  151.     .ascii "Power Supply Frequency: %ldHz\12\0"
  152. LC48:
  153.     .ascii "EClock Frequency: %ldHz\12\12\0"
  154. LC49:
  155.     .ascii "s\0"
  156. LC50:
  157.     .ascii "\0"
  158. LC51:
  159.     .ascii "Found %ld AutoConfig Device%s\12\0"
  160. LC52:
  161.     .ascii "Device %ld: addr = 0x%08lx\0"
  162. LC53:
  163.     .ascii " [%s - will be reset at kernel boot time]\0"
  164. LC54:
  165.     .ascii "No AutoConfig Devices Found\12\0"
  166. LC55:
  167.     .ascii "s \0"
  168. LC56:
  169.     .ascii " \0"
  170. LC57:
  171.     .ascii "\12Found %ld Block%sof Memory\12\0"
  172. LC58:
  173.     .ascii "Block %ld: 0x%08lx to 0x%08lx (%ldK)\12\0"
  174. LC59:
  175.     .ascii "No memory found?!  Aborting...\12\0"
  176. LC60:
  177.     .ascii "%ldK of CHIP memory\12\0"
  178. LC61:
  179.     .ascii "\12The kernel will be located at 0x%08lx\12\0"
  180. LC62:
  181.     .ascii "Not enough Chip RAM in this system.  Aborting...\12\0"
  182. LC63:
  183.     .ascii "Not enough Fast RAM in this system.  Aborting...\12\0"
  184. LC64:
  185.     .ascii "Unable to find size of ramdisk file `%s'\12\0"
  186. LC65:
  187.     .ascii "Unable to open kernel file `%s'\12\0"
  188. LC66:
  189.     .ascii "Unable to read exec header from kernel file\12\0"
  190. LC67:
  191.     .ascii "Kernel is compressed\12\0"
  192. LC68:
  193.     .ascii "Decompression error -- aborting\12\0"
  194. LC69:
  195.     .ascii "\12Loading a.out (ZMAGIC) Linux/m68k kernel...\12\0"
  196. LC70:
  197.     .ascii "\12Loading a.out (QMAGIC) Linux/m68k kernel...\12\0"
  198. LC71:
  199.     .ascii "\177ELF\0"
  200. LC72:
  201.     .ascii "\12Loading ELF Linux/m68k kernel...\12\0"
  202. LC73:
  203.     .ascii "Invalid ELF header contents in kernel\12\0"
  204. LC74:
  205.     .ascii "Unable to allocate memory for program headers\12\0"
  206. LC75:
  207.     .ascii "Unable to read program headers from kernel file\12\0"
  208. LC76:
  209.     .ascii "Wrong magic number 0x%08lx in kernel header\12\0"
  210. LC77:
  211.     .ascii "Unable to allocate memory\12\0"
  212. LC78:
  213.     .ascii "Failed to seek to segment %ld\12\0"
  214. LC79:
  215.     .ascii "Failed to read segment %ld\12\0"
  216. LC80:
  217.     .ascii "Failed to seek to text\12\0"
  218. LC81:
  219.     .ascii "Failed to read text\12\0"
  220. LC82:
  221.     .ascii "Failed to read data\12\0"
  222. LC83:
  223.     .ascii "Unable to open ramdisk file `%s'\12\0"
  224. LC84:
  225.     .ascii "Failed to read ramdisk file\12\0"
  226. LC85:
  227.     .ascii "Unable to allocate memory for stack\12\0"
  228. LC86:
  229.     .ascii "Unable to allocate memory for startcode\12\0"
  230. LC87:
  231.     .ascii "RAM disk at 0x%08lx, size is %ldK\12\0"
  232. LC88:
  233.     .ascii "Kernel segment %ld at 0x%08lx, size %ld\12\0"
  234. LC89:
  235.     .ascii "Boot info        at 0x%08lx\12\0"
  236. LC90:
  237.     .ascii "\12Kernel text at 0x%08lx, code size 0x%08lx\12\0"
  238. LC91:
  239.     .ascii "Kernel data at 0x%08lx, data size 0x%08lx\12\0"
  240. LC92:
  241.     .ascii "Kernel bss  at 0x%08lx, bss  size 0x%08lx\12\0"
  242. LC93:
  243.     .ascii "Boot info   at 0x%08lx\12\0"
  244. LC94:
  245.     .ascii "\12Kernel entry is 0x%08lx\12\0"
  246. LC95:
  247.     .ascii "ramdisk dest top is 0x%08lx\12\0"
  248. LC96:
  249.     .ascii "ramdisk lower limit is 0x%08lx\12\0"
  250. LC97:
  251.     .ascii "ramdisk src top is 0x%08lx\12\0"
  252. LC98:
  253.     .ascii "\12Type a key to continue the Linux/m68k boot...\0"
  254.     .even
  255. .globl _linuxboot
  256. _linuxboot:
  257.     link a5,#-144
  258.     moveml #0x3820,sp@-
  259.     moveq #-1,d4
  260.     movel d4,a5@(-4)
  261.     moveq #-1,d4
  262.     movel d4,a5@(-8)
  263.     clrl a5@(-12)
  264.     clrl a5@(-36)
  265.     clrl a5@(-40)
  266.     clrl a5@(-44)
  267.     clrl a5@(-80)
  268.     clrl a5@(-84)
  269.     clrl a5@(-88)
  270.     movel a5@(8),_linuxboot_args
  271.     movel _linuxboot_args,a0
  272.     pea LC20
  273.     movel a0@(1452),a2
  274.     jbsr a2@
  275.     addqw #4,sp
  276.     movel _linuxboot_args,a0
  277.     pea LC21
  278.     movel a0@(1452),a2
  279.     jbsr a2@
  280.     addqw #4,sp
  281.     movel a5@(8),d0
  282.     pea 1428:w
  283.     pea _bi
  284.     movel d0,sp@-
  285.     jbsr _bcopy
  286.     addqw #8,sp
  287.     addqw #4,sp
  288.     moveq #1,d4
  289.     movel d4,_bi
  290.     tstl _bi+1422
  291.     jne L20
  292.     jbsr _get_chipset
  293.     movel d0,_bi+1422
  294. L20:
  295.     tstl _bi+4
  296.     jne L21
  297.     pea _bi+12
  298.     pea _bi+8
  299.     pea _bi+4
  300.     jbsr _get_processor
  301.     addqw #8,sp
  302.     addqw #4,sp
  303. L21:
  304.     tstl _bi+316
  305.     jne L22
  306.     movel _bi+1422,sp@-
  307.     jbsr _get_model
  308.     addqw #4,sp
  309.     movel d0,_bi+316
  310. L22:
  311.     tstl _bi+316
  312.     jeq L23
  313.     moveq #1,d1
  314.     movel d1,d0
  315.     movel _bi+316,d4
  316.     asll d4,d0
  317.     jra L24
  318. L23:
  319.     clrl d0
  320. L24:
  321.     movel d0,a5@(-52)
  322.     tstl _bi+320
  323.     jne L25
  324.     clrl a5@(-24)
  325. L26:
  326.     pea -1:w
  327.     pea -1:w
  328.     movel a5@(-36),sp@-
  329.     jbsr _FindConfigDev
  330.     addqw #8,sp
  331.     addqw #4,sp
  332.     movel d0,a5@(-36)
  333.     tstl a5@(-36)
  334.     jne L29
  335.     jra L27
  336. L29:
  337.     moveq #15,d4
  338.     cmpl _bi+320,d4
  339.     jlt L30
  340.     pea 68:w
  341.     movel a5@(-36),sp@-
  342.     movel _bi+320,d0
  343.     movel d0,d2
  344.     movel d2,d1
  345.     asll #4,d1
  346.     addl d0,d1
  347.     movel d1,d0
  348.     asll #2,d0
  349.     movel d0,d1
  350.     addl #_bi+324,d1
  351.     movel d1,sp@-
  352.     addql #1,_bi+320
  353.     jbsr _memcpy
  354.     addqw #8,sp
  355.     addqw #4,sp
  356.     jra L31
  357. L30:
  358.     movel _linuxboot_args,a0
  359.     movel a5@(-36),a1
  360.     movel a1@(32),sp@-
  361.     pea LC22
  362.     movel a0@(1464),a2
  363.     jbsr a2@
  364.     addqw #8,sp
  365. L31:
  366. L28:
  367.     addql #1,a5@(-24)
  368.     jra L26
  369. L27:
  370. L25:
  371.     tstl _bi+16
  372.     seq d0
  373.     moveb d0,d4
  374.     extbl d4
  375.     movel d4,a5@(-16)
  376.     movel a5@(-16),d0
  377.     negl d0
  378.     movel d0,a5@(-16)
  379.     tstl _bi+1412
  380.     seq d0
  381.     moveb d0,d4
  382.     extbl d4
  383.     movel d4,a5@(-20)
  384.     movel a5@(-20),d0
  385.     negl d0
  386.     movel d0,a5@(-20)
  387.     movel _SysBase,a0
  388.     movel a0@(322),a5@(-32)
  389. L32:
  390.     movel a5@(-32),a0
  391.     tstl a0@
  392.     jne L35
  393.     jra L33
  394. L35:
  395.     movel a5@(-32),d0
  396.     movel d0,a0
  397.     lea a5@(-132),a1
  398.     movel a0@,a1@
  399.     addqw #4,a1
  400.     addqw #4,a0
  401.     movel a0@,a1@
  402.     addqw #4,a1
  403.     addqw #4,a0
  404.     movel a0@,a1@
  405.     addqw #4,a1
  406.     addqw #4,a0
  407.     movel a0@,a1@
  408.     addqw #4,a1
  409.     addqw #4,a0
  410.     movel a0@,a1@
  411.     addqw #4,a1
  412.     addqw #4,a0
  413.     movel a0@,a1@
  414.     addqw #4,a1
  415.     addqw #4,a0
  416.     movel a0@,a1@
  417.     addqw #4,a1
  418.     addqw #4,a0
  419.     movel a0@,a1@
  420.     addqw #4,a1
  421.     addqw #4,a0
  422.     movew a5@(-118),d0
  423.     andw #1,d0
  424.     tstw d0
  425.     jne L36
  426.     jra L34
  427. L36:
  428.     cmpl #133693440,a5@(-108)
  429.     jne L37
  430.     movel a5@(-52),d0
  431.     andl #6912,d0
  432.     tstl d0
  433.     jeq L37
  434.     moveq #4,d0
  435.     andl _bi+4,d0
  436.     tstl d0
  437.     jeq L38
  438.     pea __maprommed
  439.     jbsr _Supervisor
  440.     addqw #4,sp
  441.     tstl d0
  442.     jeq L38
  443.     movel _linuxboot_args,a0
  444.     pea LC23
  445.     movel a0@(1452),a2
  446.     jbsr a2@
  447.     addqw #4,sp
  448.     jra L39
  449. L38:
  450.     movel a5@(-52),d0
  451.     andl #768,d0
  452.     tstl d0
  453.     jeq L40
  454.     movel #134217728,a5@(-108)
  455.     movel _linuxboot_args,a0
  456.     pea LC24
  457.     movel a0@(1452),a2
  458.     jbsr a2@
  459.     addqw #4,sp
  460. L40:
  461. L39:
  462. L37:
  463.     cmpl #2621472,a5@(-112)
  464.     jne L41
  465.     moveb a5@(-49),d0
  466.     andb #210,d0
  467.     tstb d0
  468.     jeq L41
  469.     movel #2097152,a5@(-112)
  470.     movel _linuxboot_args,a0
  471.     pea LC25
  472.     movel a0@(1452),a2
  473.     jbsr a2@
  474.     addqw #4,sp
  475. L41:
  476.     andw #61440,a5@(-106)
  477.     andw #61440,a5@(-110)
  478.     tstl a5@(-16)
  479.     jeq L42
  480.     movew a5@(-118),d0
  481.     andw #4,d0
  482.     tstw d0
  483.     jeq L42
  484.     movel a5@(-108),d0
  485.     subl a5@(-112),d0
  486.     movel d0,d4
  487.     andl #-262144,d4
  488.     movel d4,a5@(-136)
  489.     tstl a5@(-136)
  490.     jeq L43
  491.     moveq #3,d4
  492.     cmpl _bi+16,d4
  493.     jlt L44
  494.     movel _bi+16,d0
  495.     movel d0,d1
  496.     movel d1,d0
  497.     asll #3,d0
  498.     lea _bi,a0
  499.     movel a5@(-112),a0@(20,d0:l)
  500.     movel _bi+16,d0
  501.     movel d0,d1
  502.     movel d1,d0
  503.     asll #3,d0
  504.     lea _bi,a0
  505.     movel a5@(-136),a0@(24,d0:l)
  506.     addql #1,_bi+16
  507.     jra L45
  508. L44:
  509.     movel _linuxboot_args,a0
  510.     movel a5@(-112),sp@-
  511.     movel a5@(-136),d1
  512.     movel d1,d0
  513.     moveq #10,d4
  514.     lsrl d4,d0
  515.     movel d0,sp@-
  516.     pea LC26
  517.     movel a0@(1464),a2
  518.     jbsr a2@
  519.     addqw #8,sp
  520.     addqw #4,sp
  521. L45:
  522. L43:
  523.     jra L46
  524. L42:
  525.     tstl a5@(-20)
  526.     jeq L47
  527.     movew a5@(-118),d0
  528.     andw #2,d0
  529.     tstw d0
  530.     jeq L47
  531.     movel a5@(-108),_bi+1412
  532. L47:
  533. L46:
  534. L34:
  535.     movel a5@(-32),a0
  536.     movel a0@,a5@(-32)
  537.     jra L32
  538. L33:
  539.     tstb _bi+1416
  540.     jne L48
  541.     movel _SysBase,a0
  542.     moveb a0@(530),_bi+1416
  543. L48:
  544.     tstb _bi+1417
  545.     jne L49
  546.     movel _SysBase,a0
  547.     moveb a0@(531),_bi+1417
  548. L49:
  549.     tstl _bi+1418
  550.     jne L50
  551.     movel _SysBase,a0
  552.     movel a0@(568),_bi+1418
  553. L50:
  554.     tstw _bi+1426
  555.     jne L51
  556.     movel _linuxboot_args,a0
  557.     movel a0@(1448),d0
  558.     movel _linuxboot_args,a0
  559.     tstl a0@(1448)
  560.     jne L52
  561.     movel #9600,d0
  562. L52:
  563.     movel d0,a5@(-76)
  564.     movel _bi+1418,d1
  565.     movel d1,d2
  566.     movel d2,d0
  567.     asll #2,d0
  568.     addl d1,d0
  569.     movel a5@(-76),d2
  570.     movel d2,d1
  571.     lsrl #1,d1
  572.     movel d0,d2
  573.     addl d1,d2
  574.     movel d2,d1
  575.     divull a5@(-76),d0:d1
  576.     movew d1,d4
  577.     subqw #1,d4
  578.     movew d4,_bi+1426
  579. L51:
  580.     movel _bi+316,d4
  581.     cmpl _first_amiga_model,d4
  582.     jcs L53
  583.     movel _bi+316,d4
  584.     cmpl _last_amiga_model,d4
  585.     jhi L53
  586.     movel _linuxboot_args,a0
  587.     movel _bi+316,d0
  588.     subl _first_amiga_model,d0
  589.     movel d0,d1
  590.     movel d1,d0
  591.     asll #2,d0
  592.     lea _amiga_models,a1
  593.     movel a1@(d0:l),sp@-
  594.     pea LC27
  595.     movel a0@(1464),a2
  596.     jbsr a2@
  597.     addqw #8,sp
  598.     jra L54
  599. L53:
  600.     movel _linuxboot_args,a0
  601.     pea LC28
  602.     movel a0@(1452),a2
  603.     jbsr a2@
  604.     addqw #4,sp
  605. L54:
  606.     movel _linuxboot_args,a0
  607.     pea LC29
  608.     movel a0@(1452),a2
  609.     jbsr a2@
  610.     addqw #4,sp
  611.     movel _bi+4,d0
  612.     moveq #2,d4
  613.     cmpl d0,d4
  614.     jeq L57
  615.     moveq #2,d4
  616.     cmpl d0,d4
  617.     jcs L63
  618.     moveq #1,d4
  619.     cmpl d0,d4
  620.     jeq L56
  621.     jra L60
  622. L63:
  623.     moveq #4,d4
  624.     cmpl d0,d4
  625.     jeq L58
  626.     moveq #8,d4
  627.     cmpl d0,d4
  628.     jeq L59
  629.     jra L60
  630. L56:
  631.     movel _linuxboot_args,a0
  632.     pea LC30
  633.     movel a0@(1452),a2
  634.     jbsr a2@
  635.     addqw #4,sp
  636.     jra L55
  637. L57:
  638.     movel _linuxboot_args,a0
  639.     pea LC31
  640.     movel a0@(1452),a2
  641.     jbsr a2@
  642.     addqw #4,sp
  643.     jra L55
  644. L58:
  645.     movel _linuxboot_args,a0
  646.     pea LC32
  647.     movel a0@(1452),a2
  648.     jbsr a2@
  649.     addqw #4,sp
  650.     jra L55
  651. L59:
  652.     movel _linuxboot_args,a0
  653.     pea LC33
  654.     movel a0@(1452),a2
  655.     jbsr a2@
  656.     addqw #4,sp
  657.     jra L55
  658. L60:
  659.     movel _linuxboot_args,a0
  660.     pea LC34
  661.     movel a0@(1452),a2
  662.     jbsr a2@
  663.     addqw #4,sp
  664.     movel _linuxboot_args,a0
  665.     movel _SysBase,a1
  666.     clrl d0
  667.     movew a1@(296),d0
  668.     movel d0,sp@-
  669.     pea LC35
  670.     movel a0@(1464),a2
  671.     jbsr a2@
  672.     addqw #8,sp
  673.     jra L61
  674. L55:
  675.     movel _bi+8,d0
  676.     moveq #2,d4
  677.     cmpl d0,d4
  678.     jeq L66
  679.     moveq #2,d4
  680.     cmpl d0,d4
  681.     jcs L71
  682.     moveq #1,d4
  683.     cmpl d0,d4
  684.     jeq L65
  685.     jra L69
  686. L71:
  687.     moveq #4,d4
  688.     cmpl d0,d4
  689.     jeq L67
  690.     moveq #8,d4
  691.     cmpl d0,d4
  692.     jeq L68
  693.     jra L69
  694. L65:
  695.     movel _linuxboot_args,a0
  696.     pea LC36
  697.     movel a0@(1452),a2
  698.     jbsr a2@
  699.     addqw #4,sp
  700.     jra L64
  701. L66:
  702.     movel _linuxboot_args,a0
  703.     pea LC37
  704.     movel a0@(1452),a2
  705.     jbsr a2@
  706.     addqw #4,sp
  707.     jra L64
  708. L67:
  709. L68:
  710.     movel _linuxboot_args,a0
  711.     pea LC38
  712.     movel a0@(1452),a2
  713.     jbsr a2@
  714.     addqw #4,sp
  715.     jra L64
  716. L69:
  717.     movel _linuxboot_args,a0
  718.     pea LC39
  719.     movel a0@(1452),a2
  720.     jbsr a2@
  721.     addqw #4,sp
  722.     jra L64
  723. L64:
  724.     movel _bi+1422,d0
  725.     moveq #1,d4
  726.     cmpl d0,d4
  727.     jeq L74
  728.     moveq #1,d4
  729.     cmpl d0,d4
  730.     jhi L73
  731.     moveq #2,d4
  732.     cmpl d0,d4
  733.     jeq L75
  734.     moveq #3,d4
  735.     cmpl d0,d4
  736.     jeq L76
  737.     jra L78
  738. L73:
  739.     movel _linuxboot_args,a0
  740.     pea LC40
  741.     movel a0@(1452),a2
  742.     jbsr a2@
  743.     addqw #4,sp
  744.     jra L72
  745. L74:
  746.     movel _linuxboot_args,a0
  747.     pea LC41
  748.     movel a0@(1452),a2
  749.     jbsr a2@
  750.     addqw #4,sp
  751.     jra L72
  752. L75:
  753.     movel _linuxboot_args,a0
  754.     pea LC42
  755.     movel a0@(1452),a2
  756.     jbsr a2@
  757.     addqw #4,sp
  758.     jra L72
  759. L76:
  760.     movel _linuxboot_args,a0
  761.     pea LC43
  762.     movel a0@(1452),a2
  763.     jbsr a2@
  764.     addqw #4,sp
  765.     jra L72
  766. L78:
  767. L72:
  768.     movel _linuxboot_args,a0
  769.     pea LC44
  770.     movel a0@(1452),a2
  771.     jbsr a2@
  772.     addqw #4,sp
  773.     movel _linuxboot_args,a0
  774.     pea _bi+60
  775.     pea LC45
  776.     movel a0@(1464),a2
  777.     jbsr a2@
  778.     addqw #8,sp
  779.     movel _linuxboot_args,a0
  780.     clrl d0
  781.     moveb _bi+1416,d0
  782.     movel d0,sp@-
  783.     pea LC46
  784.     movel a0@(1464),a2
  785.     jbsr a2@
  786.     addqw #8,sp
  787.     movel _linuxboot_args,a0
  788.     clrl d0
  789.     moveb _bi+1417,d0
  790.     movel d0,sp@-
  791.     pea LC47
  792.     movel a0@(1464),a2
  793.     jbsr a2@
  794.     addqw #8,sp
  795.     movel _linuxboot_args,a0
  796.     movel _bi+1418,sp@-
  797.     pea LC48
  798.     movel a0@(1464),a2
  799.     jbsr a2@
  800.     addqw #8,sp
  801.     tstl _bi+320
  802.     jeq L79
  803.     movel _linuxboot_args,a0
  804.     moveq #1,d4
  805.     cmpl _bi+320,d4
  806.     jge L80
  807.     movel #LC49,d0
  808.     jra L81
  809. L80:
  810.     movel #LC50,d0
  811. L81:
  812.     movel d0,sp@-
  813.     movel _bi+320,sp@-
  814.     pea LC51
  815.     movel a0@(1464),a2
  816.     jbsr a2@
  817.     addqw #8,sp
  818.     addqw #4,sp
  819.     clrl a5@(-24)
  820. L82:
  821.     movel a5@(-24),d4
  822.     cmpl _bi+320,d4
  823.     jlt L85
  824.     jra L83
  825. L85:
  826.     movel _linuxboot_args,a0
  827.     movel a5@(-24),d0
  828.     movel d0,d2
  829.     movel d2,d1
  830.     asll #4,d1
  831.     addl d0,d1
  832.     movel d1,d0
  833.     asll #2,d0
  834.     movel #_bi,d1
  835.     movel d1,a1
  836.     addl d0,a1
  837.     movel a1@(356),sp@-
  838.     movel a5@(-24),sp@-
  839.     pea LC52
  840.     movel a0@(1464),a2
  841.     jbsr a2@
  842.     addqw #8,sp
  843.     addqw #4,sp
  844.     movel a5@(-24),d0
  845.     movel d0,d1
  846.     movel d1,d0
  847.     asll #2,d0
  848.     lea _boardresetfuncs,a0
  849.     clrl a0@(d0:l)
  850.     movel _linuxboot_args,a0
  851.     tstl a0@(1444)
  852.     jeq L86
  853.     movel a5@(-24),d0
  854.     movel d0,d2
  855.     movel d2,d1
  856.     asll #4,d1
  857.     addl d0,d1
  858.     movel d1,d0
  859.     asll #2,d0
  860.     movel #_bi,d1
  861.     movel d1,a0
  862.     addl d0,a0
  863.     movew a0@(344),a5@(-94)
  864.     movel a5@(-24),d0
  865.     movel d0,d2
  866.     movel d2,d1
  867.     asll #4,d1
  868.     addl d0,d1
  869.     movel d1,d0
  870.     asll #2,d0
  871.     movel #_bi,d1
  872.     movel d1,a0
  873.     addl d0,a0
  874.     moveb a0@(341),a5@(-95)
  875.     clrl a5@(-28)
  876. L87:
  877.     moveq #4,d4
  878.     cmpl a5@(-28),d4
  879.     jcc L90
  880.     jra L88
  881. L90:
  882.     movel a5@(-28),d0
  883.     movel d0,d2
  884.     movel d2,d1
  885.     addl d1,d1
  886.     addl d0,d1
  887.     movel d1,d0
  888.     asll #2,d0
  889.     lea _boardresetdb,a0
  890.     movew a0@(d0:l),d4
  891.     cmpw a5@(-94),d4
  892.     jne L91
  893.     clrw d0
  894.     moveb a5@(-95),d0
  895.     movel a5@(-28),d1
  896.     movel d1,d3
  897.     movel d3,d2
  898.     addl d2,d2
  899.     addl d1,d2
  900.     movel d2,d1
  901.     asll #2,d1
  902.     lea _boardresetdb,a0
  903.     cmpw a0@(2,d1:l),d0
  904.     jne L91
  905.     movel _linuxboot_args,a0
  906.     movel a5@(-28),d0
  907.     movel d0,d2
  908.     movel d2,d1
  909.     addl d1,d1
  910.     addl d0,d1
  911.     movel d1,d0
  912.     asll #2,d0
  913.     lea _boardresetdb,a1
  914.     movel a1@(4,d0:l),sp@-
  915.     pea LC53
  916.     movel a0@(1464),a2
  917.     jbsr a2@
  918.     addqw #8,sp
  919.     movel a5@(-24),d0
  920.     movel d0,d1
  921.     movel d1,d0
  922.     asll #2,d0
  923.     lea _boardresetfuncs,a0
  924.     movel a5@(-28),d1
  925.     movel d1,d3
  926.     movel d3,d2
  927.     addl d2,d2
  928.     addl d1,d2
  929.     movel d2,d1
  930.     asll #2,d1
  931.     lea _boardresetdb,a1
  932.     movel a1@(8,d1:l),a0@(d0:l)
  933.     jra L88
  934. L91:
  935. L89:
  936.     addql #1,a5@(-28)
  937.     jra L87
  938. L88:
  939. L86:
  940.     movel _linuxboot_args,a0
  941.     pea 10:w
  942.     movel a0@(1460),a2
  943.     jbsr a2@
  944.     addqw #4,sp
  945. L84:
  946.     addql #1,a5@(-24)
  947.     jra L82
  948. L83:
  949.     jra L92
  950. L79:
  951.     movel _linuxboot_args,a0
  952.     pea LC54
  953.     movel a0@(1452),a2
  954.     jbsr a2@
  955.     addqw #4,sp
  956. L92:
  957.     tstl _bi+16
  958.     jeq L93
  959.     movel _linuxboot_args,a0
  960.     moveq #1,d4
  961.     cmpl _bi+16,d4
  962.     jge L94
  963.     movel #LC55,d0
  964.     jra L95
  965. L94:
  966.     movel #LC56,d0
  967. L95:
  968.     movel d0,sp@-
  969.     movel _bi+16,sp@-
  970.     pea LC57
  971.     movel a0@(1464),a2
  972.     jbsr a2@
  973.     addqw #8,sp
  974.     addqw #4,sp
  975.     clrl a5@(-24)
  976. L96:
  977.     movel a5@(-24),d4
  978.     cmpl _bi+16,d4
  979.     jlt L99
  980.     jra L97
  981. L99:
  982.     movel _linuxboot_args,a0
  983.     movel a5@(-24),d0
  984.     movel d0,d1
  985.     movel d1,d0
  986.     asll #3,d0
  987.     lea _bi,a1
  988.     movel a1@(24,d0:l),d1
  989.     movel d1,d0
  990.     moveq #10,d4
  991.     lsrl d4,d0
  992.     movel d0,sp@-
  993.     movel a5@(-24),d0
  994.     movel d0,d1
  995.     movel d1,d0
  996.     asll #3,d0
  997.     lea _bi,a1
  998.     movel a5@(-24),d1
  999.     movel d1,d2
  1000.     movel d2,d1
  1001.     asll #3,d1
  1002.     lea _bi,a2
  1003.     movel a1@(20,d0:l),d0
  1004.     addl a2@(24,d1:l),d0
  1005.     movel d0,sp@-
  1006.     movel a5@(-24),d0
  1007.     movel d0,d1
  1008.     movel d1,d0
  1009.     asll #3,d0
  1010.     lea _bi,a1
  1011.     movel a1@(20,d0:l),sp@-
  1012.     movel a5@(-24),sp@-
  1013.     pea LC58
  1014.     movel a0@(1464),a2
  1015.     jbsr a2@
  1016.     addw #20,sp
  1017. L98:
  1018.     addql #1,a5@(-24)
  1019.     jra L96
  1020. L97:
  1021.     jra L100
  1022. L93:
  1023.     movel _linuxboot_args,a0
  1024.     pea LC59
  1025.     movel a0@(1452),a2
  1026.     jbsr a2@
  1027.     addqw #4,sp
  1028.     jra L61
  1029. L100:
  1030.     movel _linuxboot_args,a0
  1031.     movel _bi+1412,d1
  1032.     movel d1,d0
  1033.     moveq #10,d4
  1034.     lsrl d4,d0
  1035.     movel d0,sp@-
  1036.     pea LC60
  1037.     movel a0@(1464),a2
  1038.     jbsr a2@
  1039.     addqw #8,sp
  1040.     movel _bi+20,a5@(-60)
  1041.     movel _bi+24,a5@(-64)
  1042.     movel _linuxboot_args,a0
  1043.     movel a5@(-60),sp@-
  1044.     pea LC61
  1045.     movel a0@(1464),a2
  1046.     jbsr a2@
  1047.     addqw #8,sp
  1048.     cmpl #524287,_bi+1412
  1049.     jhi L101
  1050.     movel _linuxboot_args,a0
  1051.     pea LC62
  1052.     movel a0@(1452),a2
  1053.     jbsr a2@
  1054.     addqw #4,sp
  1055.     jra L61
  1056. L101:
  1057.     nop
  1058.     clrl a5@(-48)
  1059.     clrl a5@(-24)
  1060. L102:
  1061.     movel a5@(-24),d4
  1062.     cmpl _bi+16,d4
  1063.     jlt L105
  1064.     jra L103
  1065. L105:
  1066.     movel a5@(-24),d0
  1067.     movel d0,d1
  1068.     movel d1,d0
  1069.     asll #3,d0
  1070.     lea _bi,a0
  1071.     movel a0@(24,d0:l),d4
  1072.     addl d4,a5@(-48)
  1073. L104:
  1074.     addql #1,a5@(-24)
  1075.     jra L102
  1076. L103:
  1077.     cmpl #2097151,a5@(-48)
  1078.     jhi L106
  1079.     movel _linuxboot_args,a0
  1080.     pea LC63
  1081.     movel a0@(1452),a2
  1082.     jbsr a2@
  1083.     addqw #4,sp
  1084.     jra L61
  1085. L106:
  1086.     movel _linuxboot_args,a0
  1087.     tstl a0@(1432)
  1088.     jeq L107
  1089.     movel _linuxboot_args,a0
  1090.     movel _linuxboot_args,a1
  1091.     movel a1@(1432),sp@-
  1092.     movel a0@(1484),a2
  1093.     jbsr a2@
  1094.     addqw #4,sp
  1095.     movel d0,a5@(-136)
  1096.     moveq #-1,d4
  1097.     cmpl a5@(-136),d4
  1098.     jne L108
  1099.     movel _linuxboot_args,a0
  1100.     movel _linuxboot_args,a1
  1101.     movel a1@(1432),sp@-
  1102.     pea LC64
  1103.     movel a0@(1464),a2
  1104.     jbsr a2@
  1105.     addqw #8,sp
  1106.     jra L61
  1107. L108:
  1108.     movel a5@(-136),_bi+56
  1109.     jra L109
  1110. L107:
  1111.     clrl _bi+56
  1112. L109:
  1113.     movel _bi+56,a5@(-68)
  1114.     movel a5@(-60),d0
  1115.     addl a5@(-64),d0
  1116.     movel d0,d4
  1117.     subl a5@(-68),d4
  1118.     movel d4,_bi+52
  1119.     jbsr _create_bootinfo
  1120.     tstl d0
  1121.     jne L110
  1122.     jra L61
  1123. L110:
  1124.     movel _linuxboot_args,a0
  1125.     movel _linuxboot_args,a1
  1126.     movel a1@(1428),sp@-
  1127.     movel a0@(1468),a2
  1128.     jbsr a2@
  1129.     addqw #4,sp
  1130.     movel d0,a5@(-4)
  1131.     moveq #-1,d4
  1132.     cmpl a5@(-4),d4
  1133.     jne L111
  1134.     movel _linuxboot_args,a0
  1135.     movel _linuxboot_args,a1
  1136.     movel a1@(1428),sp@-
  1137.     pea LC65
  1138.     movel a0@(1464),a2
  1139.     jbsr a2@
  1140.     addqw #8,sp
  1141.     jra L61
  1142. L111:
  1143.     pea 32:w
  1144.     pea _kexec
  1145.     movel a5@(-4),sp@-
  1146.     jbsr _KRead
  1147.     addqw #8,sp
  1148.     addqw #4,sp
  1149.     moveq #32,d4
  1150.     cmpl d0,d4
  1151.     jeq L112
  1152.     movel _linuxboot_args,a0
  1153.     pea LC66
  1154.     movel a0@(1452),a2
  1155.     jbsr a2@
  1156.     addqw #4,sp
  1157.     jra L61
  1158. L112:
  1159.     cmpb #31,_kexec
  1160.     jne L113
  1161.     cmpb #139,_kexec+1
  1162.     jeq L114
  1163.     cmpb #158,_kexec+1
  1164.     jeq L114
  1165.     jra L113
  1166. L114:
  1167.     movel _linuxboot_args,a0
  1168.     pea LC67
  1169.     movel a0@(1452),a2
  1170.     jbsr a2@
  1171.     addqw #4,sp
  1172.     movel a5@(-4),sp@-
  1173.     jbsr _load_zkernel
  1174.     addqw #4,sp
  1175.     tstl d0
  1176.     jeq L115
  1177.     movel _linuxboot_args,a0
  1178.     pea LC68
  1179.     movel a0@(1452),a2
  1180.     jbsr a2@
  1181.     addqw #4,sp
  1182.     jra L61
  1183. L115:
  1184. L113:
  1185.     movel _kexec,d0
  1186.     andl #65535,d0
  1187.     cmpl #204,d0
  1188.     jeq L123
  1189.     cmpl #267,d0
  1190.     jeq L117
  1191.     jra L125
  1192. L117:
  1193.     movel _linuxboot_args,a0
  1194.     tstl a0@(1436)
  1195.     jeq L118
  1196.     movel _linuxboot_args,a0
  1197.     pea LC69
  1198.     movel a0@(1452),a2
  1199.     jbsr a2@
  1200.     addqw #4,sp
  1201. L118:
  1202.     movel _kexec,d0
  1203.     andl #65535,d0
  1204.     cmpl #267,d0
  1205.     jeq L119
  1206.     movel _kexec,d0
  1207.     andl #65535,d0
  1208.     cmpl #204,d0
  1209.     jeq L121
  1210.     moveq #32,d0
  1211.     jra L122
  1212. L121:
  1213.     clrl d0
  1214. L122:
  1215.     jra L120
  1216. L119:
  1217.     movel #1024,d0
  1218. L120:
  1219.     movel d0,a5@(-84)
  1220.     jra L116
  1221. L123:
  1222.     movel _linuxboot_args,a0
  1223.     tstl a0@(1436)
  1224.     jeq L124
  1225.     movel _linuxboot_args,a0
  1226.     pea LC70
  1227.     movel a0@(1452),a2
  1228.     jbsr a2@
  1229.     addqw #4,sp
  1230. L124:
  1231.     moveq #32,d4
  1232.     movel d4,a5@(-84)
  1233.     moveq #-32,d4
  1234.     addl d4,_kexec+4
  1235.     jra L116
  1236. L125:
  1237.     clrl sp@-
  1238.     movel a5@(-4),sp@-
  1239.     jbsr _KSeek
  1240.     addqw #8,sp
  1241.     pea 52:w
  1242.     pea _kexec_elf
  1243.     movel a5@(-4),sp@-
  1244.     jbsr _KRead
  1245.     addqw #8,sp
  1246.     addqw #4,sp
  1247.     moveq #52,d4
  1248.     cmpl d0,d4
  1249.     jne L126
  1250.     pea 4:w
  1251.     pea LC71
  1252.     pea _kexec_elf
  1253.     jbsr _memcmp
  1254.     addqw #8,sp
  1255.     addqw #4,sp
  1256.     tstl d0
  1257.     jne L126
  1258.     moveq #1,d4
  1259.     movel d4,a5@(-12)
  1260.     movel _linuxboot_args,a0
  1261.     tstl a0@(1436)
  1262.     jeq L127
  1263.     movel _linuxboot_args,a0
  1264.     pea LC72
  1265.     movel a0@(1452),a2
  1266.     jbsr a2@
  1267.     addqw #4,sp
  1268. L127:
  1269.     cmpw #2,_kexec_elf+16
  1270.     jne L129
  1271.     cmpw #4,_kexec_elf+18
  1272.     jne L129
  1273.     moveq #1,d4
  1274.     cmpl _kexec_elf+20,d4
  1275.     jne L129
  1276.     jra L128
  1277. L129:
  1278.     movel _linuxboot_args,a0
  1279.     pea LC73
  1280.     movel a0@(1452),a2
  1281.     jbsr a2@
  1282.     addqw #4,sp
  1283.     jra L61
  1284. L128:
  1285.     movel #65541,sp@-
  1286.     clrl d0
  1287.     movew _kexec_elf+44,d0
  1288.     movel d0,d1
  1289.     asll #5,d1
  1290.     movel d1,sp@-
  1291.     jbsr _AllocMem
  1292.     addqw #8,sp
  1293.     movel d0,d1
  1294.     movel d1,a5@(-88)
  1295.     tstl d1
  1296.     jne L130
  1297.     movel _linuxboot_args,a0
  1298.     pea LC74
  1299.     movel a0@(1452),a2
  1300.     jbsr a2@
  1301.     addqw #4,sp
  1302.     jra L61
  1303. L130:
  1304.     movel _kexec_elf+28,sp@-
  1305.     movel a5@(-4),sp@-
  1306.     jbsr _KSeek
  1307.     addqw #8,sp
  1308.     clrl d0
  1309.     movew _kexec_elf+44,d0
  1310.     movel d0,d1
  1311.     asll #5,d1
  1312.     movel d1,sp@-
  1313.     movel a5@(-88),sp@-
  1314.     movel a5@(-4),sp@-
  1315.     jbsr _KRead
  1316.     addqw #8,sp
  1317.     addqw #4,sp
  1318.     clrl d1
  1319.     movew _kexec_elf+44,d1
  1320.     movel d1,d2
  1321.     asll #5,d2
  1322.     cmpl d0,d2
  1323.     jeq L131
  1324.     movel _linuxboot_args,a0
  1325.     pea LC75
  1326.     movel a0@(1452),a2
  1327.     jbsr a2@
  1328.     addqw #4,sp
  1329.     jra L61
  1330. L131:
  1331.     jra L116
  1332. L126:
  1333.     movel _linuxboot_args,a0
  1334.     movel _kexec,d0
  1335.     andl #65535,d0
  1336.     movel d0,sp@-
  1337.     pea LC76
  1338.     movel a0@(1464),a2
  1339.     jbsr a2@
  1340.     addqw #8,sp
  1341.     jra L61
  1342. L116:
  1343.     addl #4096,a5@(-60)
  1344.     addl #-4096,a5@(-64)
  1345.     tstl a5@(-12)
  1346.     jne L133
  1347.     movel _kexec+12,d0
  1348.     addql #3,d0
  1349.     moveq #-4,d4
  1350.     andl d0,d4
  1351.     movel d4,_kexec+12
  1352. L133:
  1353.     tstl a5@(-12)
  1354.     jeq L134
  1355.     moveq #-1,d4
  1356.     movel d4,a5@(-140)
  1357.     clrl a5@(-144)
  1358.     clrl a5@(-24)
  1359. L135:
  1360.     clrl d0
  1361.     movew _kexec_elf+44,d0
  1362.     cmpl a5@(-24),d0
  1363.     jgt L138
  1364.     jra L136
  1365. L138:
  1366.     movel a5@(-24),d0
  1367.     movel d0,d1
  1368.     movel d1,d0
  1369.     asll #5,d0
  1370.     movel a5@(-88),a0
  1371.     movel a5@(-140),d4
  1372.     cmpl a0@(8,d0:l),d4
  1373.     jls L139
  1374.     movel a5@(-24),d0
  1375.     movel d0,d1
  1376.     movel d1,d0
  1377.     asll #5,d0
  1378.     movel a5@(-88),a0
  1379.     movel a0@(8,d0:l),a5@(-140)
  1380. L139:
  1381.     movel a5@(-24),d0
  1382.     movel d0,d1
  1383.     movel d1,d0
  1384.     asll #5,d0
  1385.     movel a5@(-88),a0
  1386.     movel a5@(-24),d1
  1387.     movel d1,d2
  1388.     movel d2,d1
  1389.     asll #5,d1
  1390.     movel a5@(-88),a1
  1391.     movel a0@(8,d0:l),d0
  1392.     addl a1@(20,d1:l),d0
  1393.     cmpl a5@(-144),d0
  1394.     jls L140
  1395.     movel a5@(-24),d0
  1396.     movel d0,d1
  1397.     movel d1,d0
  1398.     asll #5,d0
  1399.     movel a5@(-88),a0
  1400.     movel a5@(-24),d1
  1401.     movel d1,d2
  1402.     movel d2,d1
  1403.     asll #5,d1
  1404.     movel a5@(-88),a1
  1405.     movel a0@(8,d0:l),d4
  1406.     addl a1@(20,d1:l),d4
  1407.     movel d4,a5@(-144)
  1408. L140:
  1409. L137:
  1410.     addql #1,a5@(-24)
  1411.     jra L135
  1412. L136:
  1413.     tstl a5@(-140)
  1414.     jne L141
  1415.     movel #4096,a5@(-140)
  1416.     movel a5@(-88),a0
  1417.     movel a5@(-88),a1
  1418.     movel a1@(8),d4
  1419.     addl #4096,d4
  1420.     movel d4,a0@(8)
  1421.     movel a5@(-88),a0
  1422.     movel a5@(-88),a1
  1423.     movel a1@(4),d4
  1424.     addl #4096,d4
  1425.     movel d4,a0@(4)
  1426.     movel a5@(-88),a0
  1427.     movel a5@(-88),a1
  1428.     movel a1@(16),d4
  1429.     addl #-4096,d4
  1430.     movel d4,a0@(16)
  1431.     movel a5@(-88),a0
  1432.     movel a5@(-88),a1
  1433.     movel a1@(20),d4
  1434.     addl #-4096,d4
  1435.     movel d4,a0@(20)
  1436. L141:
  1437.     movel a5@(-144),d4
  1438.     subl a5@(-140),d4
  1439.     movel d4,a5@(-72)
  1440.     jra L142
  1441. L134:
  1442.     movel _kexec+4,d0
  1443.     addl _kexec+8,d0
  1444.     movel d0,d4
  1445.     addl _kexec+12,d4
  1446.     movel d4,a5@(-72)
  1447. L142:
  1448.     movel a5@(-72),d0
  1449.     addl _bi_size,d0
  1450.     movel d0,d4
  1451.     addl a5@(-68),d4
  1452.     movel d4,a5@(-80)
  1453.     cmpl #1421,_bi_size
  1454.     jhi L143
  1455.     movel a5@(-68),d0
  1456.     addl #1422,d0
  1457.     movel a5@(-72),d4
  1458.     addl d0,d4
  1459.     movel d4,a5@(-80)
  1460. L143:
  1461.     movel #65541,sp@-
  1462.     movel a5@(-80),sp@-
  1463.     jbsr _AllocMem
  1464.     addqw #8,sp
  1465.     movel d0,d1
  1466.     movel d1,a5@(-40)
  1467.     tstl d1
  1468.     jne L144
  1469.     movel _linuxboot_args,a0
  1470.     pea LC77
  1471.     movel a0@(1452),a2
  1472.     jbsr a2@
  1473.     addqw #4,sp
  1474.     jra L61
  1475. L144:
  1476.     tstl a5@(-12)
  1477.     jeq L145
  1478.     clrl a5@(-24)
  1479. L146:
  1480.     clrl d0
  1481.     movew _kexec_elf+44,d0
  1482.     cmpl a5@(-24),d0
  1483.     jgt L149
  1484.     jra L147
  1485. L149:
  1486.     movel a5@(-24),d0
  1487.     movel d0,d1
  1488.     movel d1,d0
  1489.     asll #5,d0
  1490.     movel a5@(-88),a0
  1491.     movel a0@(4,d0:l),sp@-
  1492.     movel a5@(-4),sp@-
  1493.     jbsr _KSeek
  1494.     addqw #8,sp
  1495.     moveq #-1,d4
  1496.     cmpl d0,d4
  1497.     jne L150
  1498.     movel _linuxboot_args,a0
  1499.     movel a5@(-24),sp@-
  1500.     pea LC78
  1501.     movel a0@(1464),a2
  1502.     jbsr a2@
  1503.     addqw #8,sp
  1504.     jra L61
  1505. L150:
  1506.     movel a5@(-24),d0
  1507.     movel d0,d1
  1508.     movel d1,d0
  1509.     asll #5,d0
  1510.     movel a5@(-88),a0
  1511.     movel a0@(16,d0:l),sp@-
  1512.     movel a5@(-24),d0
  1513.     movel d0,d1
  1514.     movel d1,d0
  1515.     asll #5,d0
  1516.     movel a5@(-88),a0
  1517.     movel a5@(-40),a1
  1518.     addl a0@(8,d0:l),a1
  1519.     lea a1@(-4096),a0
  1520.     movel a0,sp@-
  1521.     movel a5@(-4),sp@-
  1522.     jbsr _KRead
  1523.     addqw #8,sp
  1524.     addqw #4,sp
  1525.     movel a5@(-24),d1
  1526.     movel d1,d2
  1527.     movel d2,d1
  1528.     asll #5,d1
  1529.     movel a5@(-88),a0
  1530.     cmpl a0@(16,d1:l),d0
  1531.     jeq L151
  1532.     movel _linuxboot_args,a0
  1533.     movel a5@(-24),sp@-
  1534.     pea LC79
  1535.     movel a0@(1464),a2
  1536.     jbsr a2@
  1537.     addqw #8,sp
  1538.     jra L61
  1539. L151:
  1540. L148:
  1541.     addql #1,a5@(-24)
  1542.     jra L146
  1543. L147:
  1544.     jra L152
  1545. L145:
  1546.     movel a5@(-84),sp@-
  1547.     movel a5@(-4),sp@-
  1548.     jbsr _KSeek
  1549.     addqw #8,sp
  1550.     moveq #-1,d4
  1551.     cmpl d0,d4
  1552.     jne L153
  1553.     movel _linuxboot_args,a0
  1554.     pea LC80
  1555.     movel a0@(1452),a2
  1556.     jbsr a2@
  1557.     addqw #4,sp
  1558.     jra L61
  1559. L153:
  1560.     movel _kexec+4,sp@-
  1561.     movel a5@(-40),sp@-
  1562.     movel a5@(-4),sp@-
  1563.     jbsr _KRead
  1564.     addqw #8,sp
  1565.     addqw #4,sp
  1566.     cmpl _kexec+4,d0
  1567.     jeq L154
  1568.     movel _linuxboot_args,a0
  1569.     pea LC81
  1570.     movel a0@(1452),a2
  1571.     jbsr a2@
  1572.     addqw #4,sp
  1573.     jra L61
  1574. L154:
  1575.     movel _kexec+8,sp@-
  1576.     movel a5@(-40),d0
  1577.     addl _kexec+4,d0
  1578.     movel d0,sp@-
  1579.     movel a5@(-4),sp@-
  1580.     jbsr _KRead
  1581.     addqw #8,sp
  1582.     addqw #4,sp
  1583.     cmpl _kexec+8,d0
  1584.     jeq L155
  1585.     movel _linuxboot_args,a0
  1586.     pea LC82
  1587.     movel a0@(1452),a2
  1588.     jbsr a2@
  1589.     addqw #4,sp
  1590.     jra L61
  1591. L155:
  1592. L152:
  1593.     movel a5@(-4),sp@-
  1594.     jbsr _KClose
  1595.     addqw #4,sp
  1596.     moveq #-1,d4
  1597.     movel d4,a5@(-4)
  1598.     movel a5@(-40),sp@-
  1599.     jbsr _check_bootinfo_version
  1600.     addqw #4,sp
  1601.     moveq #1,d4
  1602.     cmpl d0,d4
  1603.     jeq L158
  1604.     moveq #2,d4
  1605.     cmpl d0,d4
  1606.     jeq L157
  1607.     jra L160
  1608. L157:
  1609.     movel #_bi_union,a5@(-100)
  1610.     jra L156
  1611. L158:
  1612.     jbsr _create_compat_bootinfo
  1613.     tstl d0
  1614.     jne L159
  1615.     jra L61
  1616. L159:
  1617.     movel #_compat_bootinfo,a5@(-100)
  1618.     movel #1422,_bi_size
  1619.     jra L156
  1620. L160:
  1621.     jra L61
  1622. L156:
  1623.     movel _bi_size,sp@-
  1624.     movel a5@(-100),sp@-
  1625.     movel a5@(-40),d0
  1626.     addl a5@(-72),d0
  1627.     movel d0,sp@-
  1628.     jbsr _memcpy
  1629.     addqw #8,sp
  1630.     addqw #4,sp
  1631.     movel _linuxboot_args,a0
  1632.     tstl a0@(1432)
  1633.     jeq L162
  1634.     movel _linuxboot_args,a0
  1635.     movel _linuxboot_args,a1
  1636.     movel a1@(1432),sp@-
  1637.     movel a0@(1468),a2
  1638.     jbsr a2@
  1639.     addqw #4,sp
  1640.     movel d0,a5@(-8)
  1641.     moveq #-1,d4
  1642.     cmpl a5@(-8),d4
  1643.     jne L163
  1644.     movel _linuxboot_args,a0
  1645.     movel _linuxboot_args,a1
  1646.     movel a1@(1432),sp@-
  1647.     pea LC83
  1648.     movel a0@(1464),a2
  1649.     jbsr a2@
  1650.     addqw #8,sp
  1651.     jra L61
  1652. L163:
  1653.     movel _linuxboot_args,a0
  1654.     movel a5@(-68),sp@-
  1655.     movel a5@(-40),d0
  1656.     addl a5@(-72),d0
  1657.     movel d0,d1
  1658.     addl _bi_size,d1
  1659.     movel d1,sp@-
  1660.     movel a5@(-8),sp@-
  1661.     movel a0@(1476),a2
  1662.     jbsr a2@
  1663.     addqw #8,sp
  1664.     addqw #4,sp
  1665.     cmpl a5@(-68),d0
  1666.     jeq L164
  1667.     movel _linuxboot_args,a0
  1668.     pea LC84
  1669.     movel a0@(1452),a2
  1670.     jbsr a2@
  1671.     addqw #4,sp
  1672.     jra L61
  1673. L164:
  1674.     movel _linuxboot_args,a0
  1675.     movel a5@(-8),sp@-
  1676.     movel a0@(1480),a2
  1677.     jbsr a2@
  1678.     addqw #4,sp
  1679.     moveq #-1,d4
  1680.     movel d4,a5@(-8)
  1681. L162:
  1682.     movel #65538,sp@-
  1683.     pea 256:w
  1684.     jbsr _AllocMem
  1685.     addqw #8,sp
  1686.     movel d0,d1
  1687.     movel d1,a5@(-44)
  1688.     tstl d1
  1689.     jne L165
  1690.     movel _linuxboot_args,a0
  1691.     pea LC85
  1692.     movel a0@(1452),a2
  1693.     jbsr a2@
  1694.     addqw #4,sp
  1695.     jra L61
  1696. L165:
  1697.     movel #_copyallend,d4
  1698.     subl #_copyall,d4
  1699.     movel d4,a5@(-56)
  1700.     movel #65538,sp@-
  1701.     movel a5@(-56),sp@-
  1702.     jbsr _AllocMem
  1703.     addqw #8,sp
  1704.     movel d0,d1
  1705.     movel d1,a5@(-92)
  1706.     tstl d1
  1707.     jne L166
  1708.     movel _linuxboot_args,a0
  1709.     pea LC86
  1710.     movel a0@(1452),a2
  1711.     jbsr a2@
  1712.     addqw #4,sp
  1713.     jra L61
  1714. L166:
  1715.     movel a5@(-56),sp@-
  1716.     pea _copyall
  1717.     movel a5@(-92),sp@-
  1718.     jbsr _memcpy
  1719.     addqw #8,sp
  1720.     addqw #4,sp
  1721.     movel _linuxboot_args,a0
  1722.     tstl a0@(1436)
  1723.     jeq L167
  1724.     tstl _bi+56
  1725.     jeq L168
  1726.     movel _linuxboot_args,a0
  1727.     movel _bi+56,d1
  1728.     movel d1,d0
  1729.     moveq #10,d4
  1730.     lsrl d4,d0
  1731.     movel d0,sp@-
  1732.     movel a5@(-40),d0
  1733.     addl a5@(-72),d0
  1734.     movel d0,sp@-
  1735.     pea LC87
  1736.     movel a0@(1464),a2
  1737.     jbsr a2@
  1738.     addqw #8,sp
  1739.     addqw #4,sp
  1740. L168:
  1741.     tstl a5@(-12)
  1742.     jeq L169
  1743.     movel _linuxboot_args,a0
  1744.     pea 10:w
  1745.     movel a0@(1460),a2
  1746.     jbsr a2@
  1747.     addqw #4,sp
  1748.     clrl a5@(-24)
  1749. L170:
  1750.     clrl d0
  1751.     movew _kexec_elf+44,d0
  1752.     cmpl a5@(-24),d0
  1753.     jgt L173
  1754.     jra L171
  1755. L173:
  1756.     movel _linuxboot_args,a0
  1757.     movel a5@(-24),d0
  1758.     movel d0,d1
  1759.     movel d1,d0
  1760.     asll #5,d0
  1761.     movel a5@(-88),a1
  1762.     movel a1@(20,d0:l),sp@-
  1763.     movel a5@(-24),d0
  1764.     movel d0,d1
  1765.     movel d1,d0
  1766.     asll #5,d0
  1767.     movel a5@(-88),a1
  1768.     movel a5@(-60),a2
  1769.     addl a1@(8,d0:l),a2
  1770.     lea a2@(-4096),a1
  1771.     movel a1,sp@-
  1772.     movel a5@(-24),sp@-
  1773.     pea LC88
  1774.     movel a0@(1464),a2
  1775.     jbsr a2@
  1776.     addqw #8,sp
  1777.     addqw #8,sp
  1778. L172:
  1779.     addql #1,a5@(-24)
  1780.     jra L170
  1781. L171:
  1782.     movel _linuxboot_args,a0
  1783.     movel a5@(-60),d0
  1784.     addl a5@(-72),d0
  1785.     movel d0,sp@-
  1786.     pea LC89
  1787.     movel a0@(1464),a2
  1788.     jbsr a2@
  1789.     addqw #8,sp
  1790.     jra L174
  1791. L169:
  1792.     movel _linuxboot_args,a0
  1793.     movel _kexec+4,sp@-
  1794.     movel a5@(-60),sp@-
  1795.     pea LC90
  1796.     movel a0@(1464),a2
  1797.     jbsr a2@
  1798.     addqw #8,sp
  1799.     addqw #4,sp
  1800.     movel _linuxboot_args,a0
  1801.     movel _kexec+8,sp@-
  1802.     movel a5@(-60),d0
  1803.     addl _kexec+4,d0
  1804.     movel d0,sp@-
  1805.     pea LC91
  1806.     movel a0@(1464),a2
  1807.     jbsr a2@
  1808.     addqw #8,sp
  1809.     addqw #4,sp
  1810.     movel _linuxboot_args,a0
  1811.     movel _kexec+12,sp@-
  1812.     movel a5@(-60),d0
  1813.     addl _kexec+4,d0
  1814.     movel d0,d1
  1815.     addl _kexec+8,d1
  1816.     movel d1,sp@-
  1817.     pea LC92
  1818.     movel a0@(1464),a2
  1819.     jbsr a2@
  1820.     addqw #8,sp
  1821.     addqw #4,sp
  1822.     movel _linuxboot_args,a0
  1823.     movel a5@(-60),d0
  1824.     addl a5@(-72),d0
  1825.     movel d0,sp@-
  1826.     pea LC93
  1827.     movel a0@(1464),a2
  1828.     jbsr a2@
  1829.     addqw #8,sp
  1830. L174:
  1831.     movel _linuxboot_args,a0
  1832.     tstl a5@(-12)
  1833.     jeq L175
  1834.     movel _kexec_elf+24,d0
  1835.     jra L176
  1836. L175:
  1837.     movel _kexec+20,d0
  1838. L176:
  1839.     movel d0,sp@-
  1840.     pea LC94
  1841.     movel a0@(1464),a2
  1842.     jbsr a2@
  1843.     addqw #8,sp
  1844.     movel _linuxboot_args,a0
  1845.     movel a5@(-60),d0
  1846.     addl a5@(-64),d0
  1847.     movel d0,sp@-
  1848.     pea LC95
  1849.     movel a0@(1464),a2
  1850.     jbsr a2@
  1851.     addqw #8,sp
  1852.     movel _linuxboot_args,a0
  1853.     movel a5@(-40),d0
  1854.     addl a5@(-72),d0
  1855.     movel d0,sp@-
  1856.     pea LC96
  1857.     movel a0@(1464),a2
  1858.     jbsr a2@
  1859.     addqw #8,sp
  1860.     movel _linuxboot_args,a0
  1861.     movel a5@(-40),d0
  1862.     addl a5@(-72),d0
  1863.     movel d0,d1
  1864.     addl a5@(-68),d1
  1865.     movel d1,sp@-
  1866.     pea LC97
  1867.     movel a0@(1464),a2
  1868.     jbsr a2@
  1869.     addqw #8,sp
  1870.     movel _linuxboot_args,a0
  1871.     pea LC98
  1872.     movel a0@(1452),a2
  1873.     jbsr a2@
  1874.     addqw #4,sp
  1875.     movel _linuxboot_args,a0
  1876.     movel a0@(1456),a2
  1877.     jbsr a2@
  1878.     movel _linuxboot_args,a0
  1879.     pea 10:w
  1880.     movel a0@(1460),a2
  1881.     jbsr a2@
  1882.     addqw #4,sp
  1883. L167:
  1884.     movel _linuxboot_args,a0
  1885.     movel #1000000,sp@-
  1886.     movel a0@(1488),a2
  1887.     jbsr a2@
  1888.     addqw #4,sp
  1889.     movel _linuxboot_args,a0
  1890.     tstl a0@(1440)
  1891.     jne L177
  1892.     clrl sp@-
  1893.     jbsr _LoadView
  1894.     addqw #4,sp
  1895. L177:
  1896.     jbsr _Disable
  1897.     movel _linuxboot_args,a0
  1898.     tstl a0@(1444)
  1899.     jeq L178
  1900.     clrl a5@(-24)
  1901. L179:
  1902.     movel a5@(-24),d4
  1903.     cmpl _bi+320,d4
  1904.     jlt L182
  1905.     jra L180
  1906. L182:
  1907.     movel a5@(-24),d0
  1908.     movel d0,d1
  1909.     movel d1,d0
  1910.     asll #2,d0
  1911.     lea _boardresetfuncs,a0
  1912.     tstl a0@(d0:l)
  1913.     jeq L183
  1914.     movel a5@(-24),d0
  1915.     movel d0,d1
  1916.     movel d1,d0
  1917.     asll #2,d0
  1918.     lea _boardresetfuncs,a0
  1919.     movel a5@(-24),d1
  1920.     movel d1,d3
  1921.     movel d3,d2
  1922.     asll #4,d2
  1923.     addl d1,d2
  1924.     movel d2,d1
  1925.     asll #2,d1
  1926.     movel d1,d2
  1927.     addl #_bi+324,d2
  1928.     movel d2,sp@-
  1929.     movel a0@(d0:l),a2
  1930.     jbsr a2@
  1931.     addqw #4,sp
  1932. L183:
  1933. L181:
  1934.     addql #1,a5@(-24)
  1935.     jra L179
  1936. L180:
  1937. L178:
  1938.     movew #1023,14676118
  1939.     pea -1:w
  1940.     clrl sp@-
  1941.     jbsr _CacheControl
  1942.     addqw #8,sp
  1943.     jbsr _SuperState
  1944.     jbsr _disable_mmu
  1945.     movel a5@(-72),sp@-
  1946.     movel a5@(-68),sp@-
  1947.     movel a5@(-64),sp@-
  1948.     movel a5@(-60),sp@-
  1949.     movel a5@(-40),sp@-
  1950.     movel a5@(-44),d0
  1951.     addl #256,d0
  1952.     movel d0,sp@-
  1953.     movel a5@(-92),sp@-
  1954.     jbsr _start_kernel
  1955.     addw #28,sp
  1956. L61:
  1957.     moveq #-1,d4
  1958.     cmpl a5@(-4),d4
  1959.     jeq L184
  1960.     movel a5@(-4),sp@-
  1961.     jbsr _KClose
  1962.     addqw #4,sp
  1963. L184:
  1964.     moveq #-1,d4
  1965.     cmpl a5@(-8),d4
  1966.     jeq L185
  1967.     movel _linuxboot_args,a0
  1968.     movel a5@(-8),sp@-
  1969.     movel a0@(1480),a2
  1970.     jbsr a2@
  1971.     addqw #4,sp
  1972. L185:
  1973.     tstl a5@(-40)
  1974.     jeq L186
  1975.     movel a5@(-80),sp@-
  1976.     movel a5@(-40),sp@-
  1977.     jbsr _FreeMem
  1978.     addqw #8,sp
  1979. L186:
  1980.     tstl a5@(-44)
  1981.     jeq L187
  1982.     pea 256:w
  1983.     movel a5@(-44),sp@-
  1984.     jbsr _FreeMem
  1985.     addqw #8,sp
  1986. L187:
  1987.     tstl a5@(-88)
  1988.     jeq L188
  1989.     clrl d0
  1990.     movew _kexec_elf+44,d0
  1991.     movel d0,d1
  1992.     asll #5,d1
  1993.     movel d1,sp@-
  1994.     movel a5@(-88),sp@-
  1995.     jbsr _FreeMem
  1996.     addqw #8,sp
  1997. L188:
  1998.     clrl d0
  1999.     jra L19
  2000. L19:
  2001.     moveml a5@(-160),#0x41c
  2002.     unlk a5
  2003.     rts
  2004.     .even
  2005. _get_chipset:
  2006.     link a5,#-8
  2007.     movel _GfxBase,a0
  2008.     cmpw #38,a0@(20)
  2009.     jls L190
  2010.     pea -1:w
  2011.     jbsr _SetChipRev
  2012.     addqw #4,sp
  2013.     moveb d0,a5@(-1)
  2014.     jra L191
  2015. L190:
  2016.     movel _GfxBase,a0
  2017.     moveb a0@(236),a5@(-1)
  2018. L191:
  2019.     moveb a5@(-1),d0
  2020.     andb #12,d0
  2021.     cmpb #12,d0
  2022.     jne L192
  2023.     moveq #3,d1
  2024.     movel d1,a5@(-6)
  2025.     jra L193
  2026. L192:
  2027.     moveb a5@(-1),d0
  2028.     andb #3,d0
  2029.     cmpb #3,d0
  2030.     jne L194
  2031.     moveq #2,d1
  2032.     movel d1,a5@(-6)
  2033.     jra L195
  2034. L194:
  2035.     moveb a5@(-1),d0
  2036.     andb #1,d0
  2037.     tstb d0
  2038.     jeq L196
  2039.     moveq #1,d1
  2040.     movel d1,a5@(-6)
  2041.     jra L197
  2042. L196:
  2043.     clrl a5@(-6)
  2044. L197:
  2045. L195:
  2046. L193:
  2047.     movel a5@(-6),d0
  2048.     jra L189
  2049. L189:
  2050.     unlk a5
  2051.     rts
  2052.     .even
  2053. _get_processor:
  2054.     link a5,#0
  2055.     movel a5@(8),a0
  2056.     movel a5@(12),a1
  2057.     clrl a1@
  2058.     clrl a0@
  2059.     movel _SysBase,a0
  2060.     moveb a0@(297),d0
  2061.     andb #128,d0
  2062.     tstb d0
  2063.     jeq L199
  2064.     movel a5@(8),a0
  2065.     moveq #8,d1
  2066.     movel d1,a0@
  2067.     jra L200
  2068. L199:
  2069.     movel _SysBase,a0
  2070.     movew a0@(296),d0
  2071.     andw #8,d0
  2072.     tstw d0
  2073.     jeq L201
  2074.     movel a5@(8),a0
  2075.     moveq #4,d1
  2076.     movel d1,a0@
  2077.     jra L202
  2078. L201:
  2079.     movel _SysBase,a0
  2080.     movew a0@(296),d0
  2081.     andw #4,d0
  2082.     tstw d0
  2083.     jeq L203
  2084.     movel a5@(8),a0
  2085.     moveq #2,d1
  2086.     movel d1,a0@
  2087.     jra L204
  2088. L203:
  2089.     movel _SysBase,a0
  2090.     movew a0@(296),d0
  2091.     andw #2,d0
  2092.     tstw d0
  2093.     jeq L205
  2094.     movel a5@(8),a0
  2095.     moveq #1,d1
  2096.     movel d1,a0@
  2097. L205:
  2098. L204:
  2099. L202:
  2100. L200:
  2101.     movel a5@(8),a0
  2102.     moveq #4,d1
  2103.     cmpl a0@,d1
  2104.     jeq L207
  2105.     movel a5@(8),a0
  2106.     moveq #8,d1
  2107.     cmpl a0@,d1
  2108.     jeq L207
  2109.     jra L206
  2110. L207:
  2111.     movel _SysBase,a0
  2112.     movew a0@(296),d0
  2113.     andw #64,d0
  2114.     tstw d0
  2115.     jeq L208
  2116.     movel a5@(12),a0
  2117.     movel a5@(8),a1
  2118.     movel a1@,a0@
  2119. L208:
  2120.     jra L209
  2121. L206:
  2122.     movel _SysBase,a0
  2123.     movew a0@(296),d0
  2124.     andw #32,d0
  2125.     tstw d0
  2126.     jeq L210
  2127.     movel a5@(12),a0
  2128.     moveq #2,d1
  2129.     movel d1,a0@
  2130.     jra L211
  2131. L210:
  2132.     movel _SysBase,a0
  2133.     movew a0@(296),d0
  2134.     andw #16,d0
  2135.     tstw d0
  2136.     jeq L212
  2137.     movel a5@(12),a0
  2138.     moveq #1,d1
  2139.     movel d1,a0@
  2140. L212:
  2141. L211:
  2142. L209:
  2143.     movel a5@(16),a0
  2144.     movel a5@(8),a1
  2145.     movel a1@,a0@
  2146. L198:
  2147.     unlk a5
  2148.     rts
  2149. LC99:
  2150.     .ascii "Amiga model identification:\12\0"
  2151. LC100:
  2152.     .ascii "draco.resource\0"
  2153. LC101:
  2154.     .ascii "    Chipset: \0"
  2155. LC102:
  2156.     .ascii "Old or unknown\12\0"
  2157. LC103:
  2158.     .ascii "OCS\12\0"
  2159. LC104:
  2160.     .ascii "cd.device\0"
  2161. LC105:
  2162.     .ascii "ECS\12\0"
  2163. LC106:
  2164.     .ascii "Magic 36.7\0"
  2165. LC107:
  2166.     .ascii "kickad 36.57\0"
  2167. LC108:
  2168.     .ascii "A3000 Bonus\0"
  2169. LC109:
  2170.     .ascii "A3000 bonus\0"
  2171. LC110:
  2172.     .ascii "card.resource\0"
  2173. LC111:
  2174.     .ascii "AGA\12\0"
  2175. LC112:
  2176.     .ascii "A1000 Bonus\0"
  2177. LC113:
  2178.     .ascii "A4000 bonus\0"
  2179. LC114:
  2180.     .ascii "NCR scsi.device\0"
  2181. LC115:
  2182.     .ascii "\12Type a key to continue...\0"
  2183.     .even
  2184. _get_model:
  2185.     link a5,#-4
  2186.     movel a2,sp@-
  2187.     clrl a5@(-4)
  2188.     movel _linuxboot_args,a0
  2189.     tstl a0@(1436)
  2190.     jeq L214
  2191.     movel _linuxboot_args,a0
  2192.     pea LC99
  2193.     movel a0@(1452),a2
  2194.     jbsr a2@
  2195.     addqw #4,sp
  2196. L214:
  2197.     pea LC100
  2198.     jbsr _probe_resource
  2199.     addqw #4,sp
  2200.     tstl d0
  2201.     jeq L215
  2202.     moveq #15,d1
  2203.     movel d1,a5@(-4)
  2204.     jra L216
  2205. L215:
  2206.     movel _linuxboot_args,a0
  2207.     tstl a0@(1436)
  2208.     jeq L217
  2209.     movel _linuxboot_args,a0
  2210.     pea LC101
  2211.     movel a0@(1452),a2
  2212.     jbsr a2@
  2213.     addqw #4,sp
  2214. L217:
  2215.     movel a5@(8),d0
  2216.     moveq #1,d1
  2217.     cmpl d0,d1
  2218.     jeq L222
  2219.     moveq #1,d1
  2220.     cmpl d0,d1
  2221.     jhi L219
  2222.     moveq #2,d1
  2223.     cmpl d0,d1
  2224.     jeq L226
  2225.     moveq #3,d1
  2226.     cmpl d0,d1
  2227.     jeq L233
  2228.     jra L245
  2229. L219:
  2230.     movel _linuxboot_args,a0
  2231.     tstl a0@(1436)
  2232.     jeq L220
  2233.     movel _linuxboot_args,a0
  2234.     pea LC102
  2235.     movel a0@(1452),a2
  2236.     jbsr a2@
  2237.     addqw #4,sp
  2238. L220:
  2239.     jra L221
  2240.     jra L218
  2241. L222:
  2242.     movel _linuxboot_args,a0
  2243.     tstl a0@(1436)
  2244.     jeq L223
  2245.     movel _linuxboot_args,a0
  2246.     pea LC103
  2247.     movel a0@(1452),a2
  2248.     jbsr a2@
  2249.     addqw #4,sp
  2250. L223:
  2251.     nop
  2252. L221:
  2253.     pea LC104
  2254.     jbsr _probe_resident
  2255.     addqw #4,sp
  2256.     tstl d0
  2257.     jeq L224
  2258.     moveq #13,d1
  2259.     movel d1,a5@(-4)
  2260.     jra L225
  2261. L224:
  2262.     moveq #6,d1
  2263.     movel d1,a5@(-4)
  2264. L225:
  2265.     jra L218
  2266. L226:
  2267.     movel _linuxboot_args,a0
  2268.     tstl a0@(1436)
  2269.     jeq L227
  2270.     movel _linuxboot_args,a0
  2271.     pea LC105
  2272.     movel a0@(1452),a2
  2273.     jbsr a2@
  2274.     addqw #4,sp
  2275. L227:
  2276.     pea LC106
  2277.     jbsr _probe_resident
  2278.     addqw #4,sp
  2279.     tstl d0
  2280.     jne L229
  2281.     pea LC107
  2282.     jbsr _probe_resident
  2283.     addqw #4,sp
  2284.     tstl d0
  2285.     jne L229
  2286.     pea LC108
  2287.     jbsr _probe_resident
  2288.     addqw #4,sp
  2289.     tstl d0
  2290.     jne L229
  2291.     pea LC109
  2292.     jbsr _probe_resident
  2293.     addqw #4,sp
  2294.     tstl d0
  2295.     jne L229
  2296.     jra L228
  2297. L229:
  2298.     moveq #8,d1
  2299.     movel d1,a5@(-4)
  2300.     jra L230
  2301. L228:
  2302.     pea LC110
  2303.     jbsr _probe_resource
  2304.     addqw #4,sp
  2305.     tstl d0
  2306.     jeq L231
  2307.     moveq #3,d1
  2308.     movel d1,a5@(-4)
  2309.     jra L232
  2310. L231:
  2311.     moveq #6,d1
  2312.     movel d1,a5@(-4)
  2313. L232:
  2314. L230:
  2315.     jra L218
  2316. L233:
  2317.     movel _linuxboot_args,a0
  2318.     tstl a0@(1436)
  2319.     jeq L234
  2320.     movel _linuxboot_args,a0
  2321.     pea LC111
  2322.     movel a0@(1452),a2
  2323.     jbsr a2@
  2324.     addqw #4,sp
  2325. L234:
  2326.     pea LC112
  2327.     jbsr _probe_resident
  2328.     addqw #4,sp
  2329.     tstl d0
  2330.     jne L236
  2331.     pea LC113
  2332.     jbsr _probe_resident
  2333.     addqw #4,sp
  2334.     tstl d0
  2335.     jne L236
  2336.     jra L235
  2337. L236:
  2338.     pea LC114
  2339.     jbsr _probe_resident
  2340.     addqw #4,sp
  2341.     tstl d0
  2342.     jeq L237
  2343.     moveq #12,d0
  2344.     jra L238
  2345. L237:
  2346.     moveq #11,d0
  2347. L238:
  2348.     movel d0,a5@(-4)
  2349.     jra L239
  2350. L235:
  2351.     pea LC110
  2352.     jbsr _probe_resource
  2353.     addqw #4,sp
  2354.     tstl d0
  2355.     jeq L240
  2356.     moveq #5,d1
  2357.     movel d1,a5@(-4)
  2358.     jra L241
  2359. L240:
  2360.     pea LC104
  2361.     jbsr _probe_resident
  2362.     addqw #4,sp
  2363.     tstl d0
  2364.     jeq L242
  2365.     moveq #14,d1
  2366.     movel d1,a5@(-4)
  2367.     jra L243
  2368. L242:
  2369.     moveq #10,d1
  2370.     movel d1,a5@(-4)
  2371. L243:
  2372. L241:
  2373. L239:
  2374.     jra L218
  2375. L245:
  2376. L218:
  2377. L216:
  2378.     movel _linuxboot_args,a0
  2379.     tstl a0@(1436)
  2380.     jeq L246
  2381.     movel _linuxboot_args,a0
  2382.     pea LC115
  2383.     movel a0@(1452),a2
  2384.     jbsr a2@
  2385.     addqw #4,sp
  2386.     movel _linuxboot_args,a0
  2387.     movel a0@(1456),a2
  2388.     jbsr a2@
  2389.     movel _linuxboot_args,a0
  2390.     pea LC44
  2391.     movel a0@(1452),a2
  2392.     jbsr a2@
  2393.     addqw #4,sp
  2394. L246:
  2395.     movel a5@(-4),d0
  2396.     jra L213
  2397. L213:
  2398.     movel a5@(-8),a2
  2399.     unlk a5
  2400.     rts
  2401. LC116:
  2402.     .ascii "    Module `%s': \0"
  2403. LC117:
  2404.     .ascii "0x%08lx\12\0"
  2405. LC118:
  2406.     .ascii "not present\12\0"
  2407.     .even
  2408. _probe_resident:
  2409.     link a5,#-4
  2410.     movel a2,sp@-
  2411.     movel _linuxboot_args,a0
  2412.     tstl a0@(1436)
  2413.     jeq L248
  2414.     movel _linuxboot_args,a0
  2415.     movel a5@(8),sp@-
  2416.     pea LC116
  2417.     movel a0@(1464),a2
  2418.     jbsr a2@
  2419.     addqw #8,sp
  2420. L248:
  2421.     movel a5@(8),sp@-
  2422.     jbsr _FindResident
  2423.     addqw #4,sp
  2424.     movel d0,a5@(-4)
  2425.     movel _linuxboot_args,a0
  2426.     tstl a0@(1436)
  2427.     jeq L249
  2428.     tstl a5@(-4)
  2429.     jeq L250
  2430.     movel _linuxboot_args,a0
  2431.     movel a5@(-4),sp@-
  2432.     pea LC117
  2433.     movel a0@(1464),a2
  2434.     jbsr a2@
  2435.     addqw #8,sp
  2436.     jra L251
  2437. L250:
  2438.     movel _linuxboot_args,a0
  2439.     pea LC118
  2440.     movel a0@(1452),a2
  2441.     jbsr a2@
  2442.     addqw #4,sp
  2443. L251:
  2444. L249:
  2445.     tstl a5@(-4)
  2446.     sne d1
  2447.     moveb d1,d0
  2448.     extbl d0
  2449.     movel d0,d1
  2450.     negl d1
  2451.     movel d1,d0
  2452.     jra L247
  2453. L247:
  2454.     movel a5@(-8),a2
  2455.     unlk a5
  2456.     rts
  2457. LC119:
  2458.     .ascii "    Resource `%s': \0"
  2459.     .even
  2460. _probe_resource:
  2461.     link a5,#-4
  2462.     movel a2,sp@-
  2463.     movel _linuxboot_args,a0
  2464.     tstl a0@(1436)
  2465.     jeq L253
  2466.     movel _linuxboot_args,a0
  2467.     movel a5@(8),sp@-
  2468.     pea LC119
  2469.     movel a0@(1464),a2
  2470.     jbsr a2@
  2471.     addqw #8,sp
  2472. L253:
  2473.     movel a5@(8),sp@-
  2474.     jbsr _OpenResource
  2475.     addqw #4,sp
  2476.     movel d0,a5@(-4)
  2477.     movel _linuxboot_args,a0
  2478.     tstl a0@(1436)
  2479.     jeq L254
  2480.     tstl a5@(-4)
  2481.     jeq L255
  2482.     movel _linuxboot_args,a0
  2483.     movel a5@(-4),sp@-
  2484.     pea LC117
  2485.     movel a0@(1464),a2
  2486.     jbsr a2@
  2487.     addqw #8,sp
  2488.     jra L256
  2489. L255:
  2490.     movel _linuxboot_args,a0
  2491.     pea LC118
  2492.     movel a0@(1452),a2
  2493.     jbsr a2@
  2494.     addqw #4,sp
  2495. L256:
  2496. L254:
  2497.     tstl a5@(-4)
  2498.     sne d1
  2499.     moveb d1,d0
  2500.     extbl d0
  2501.     movel d0,d1
  2502.     negl d1
  2503.     movel d1,d0
  2504.     jra L252
  2505. L252:
  2506.     movel a5@(-8),a2
  2507.     unlk a5
  2508.     rts
  2509.     .even
  2510. _create_bootinfo:
  2511.     link a5,#-8
  2512.     movel d2,sp@-
  2513.     clrl _bi_size
  2514.     pea _bi
  2515.     pea 4:w
  2516.     pea 1:w
  2517.     jbsr _add_bi_record
  2518.     addqw #8,sp
  2519.     addqw #4,sp
  2520.     tstl d0
  2521.     jne L258
  2522.     clrl d0
  2523.     jra L257
  2524. L258:
  2525.     pea _bi+4
  2526.     pea 4:w
  2527.     pea 2:w
  2528.     jbsr _add_bi_record
  2529.     addqw #8,sp
  2530.     addqw #4,sp
  2531.     tstl d0
  2532.     jne L259
  2533.     clrl d0
  2534.     jra L257
  2535. L259:
  2536.     pea _bi+8
  2537.     pea 4:w
  2538.     pea 3:w
  2539.     jbsr _add_bi_record
  2540.     addqw #8,sp
  2541.     addqw #4,sp
  2542.     tstl d0
  2543.     jne L260
  2544.     clrl d0
  2545.     jra L257
  2546. L260:
  2547.     pea _bi+12
  2548.     pea 4:w
  2549.     pea 4:w
  2550.     jbsr _add_bi_record
  2551.     addqw #8,sp
  2552.     addqw #4,sp
  2553.     tstl d0
  2554.     jne L261
  2555.     clrl d0
  2556.     jra L257
  2557. L261:
  2558.     nop
  2559.     clrl a5@(-4)
  2560. L262:
  2561.     movel a5@(-4),a1
  2562.     cmpl _bi+16,a1
  2563.     jlt L265
  2564.     jra L263
  2565. L265:
  2566.     movel a5@(-4),d0
  2567.     movel d0,d1
  2568.     movel d1,d0
  2569.     asll #3,d0
  2570.     movel d0,d1
  2571.     addl #_bi+20,d1
  2572.     movel d1,sp@-
  2573.     pea 8:w
  2574.     pea 5:w
  2575.     jbsr _add_bi_record
  2576.     addqw #8,sp
  2577.     addqw #4,sp
  2578.     tstl d0
  2579.     jne L266
  2580.     clrl d0
  2581.     jra L257
  2582. L266:
  2583. L264:
  2584.     addql #1,a5@(-4)
  2585.     jra L262
  2586. L263:
  2587.     tstl _bi+56
  2588.     jeq L267
  2589.     pea _bi+52
  2590.     pea 8:w
  2591.     pea 6:w
  2592.     jbsr _add_bi_record
  2593.     addqw #8,sp
  2594.     addqw #4,sp
  2595.     tstl d0
  2596.     jne L268
  2597.     clrl d0
  2598.     jra L257
  2599. L268:
  2600. L267:
  2601.     pea _bi+60
  2602.     pea 7:w
  2603.     jbsr _add_bi_string
  2604.     addqw #8,sp
  2605.     tstl d0
  2606.     jne L269
  2607.     clrl d0
  2608.     jra L257
  2609. L269:
  2610.     pea _bi+316
  2611.     pea 4:w
  2612.     movel #32768,sp@-
  2613.     jbsr _add_bi_record
  2614.     addqw #8,sp
  2615.     addqw #4,sp
  2616.     tstl d0
  2617.     jne L270
  2618.     clrl d0
  2619.     jra L257
  2620. L270:
  2621.     nop
  2622.     clrl a5@(-4)
  2623. L271:
  2624.     movel a5@(-4),a1
  2625.     cmpl _bi+320,a1
  2626.     jlt L274
  2627.     jra L272
  2628. L274:
  2629.     movel a5@(-4),d0
  2630.     movel d0,d2
  2631.     movel d2,d1
  2632.     asll #4,d1
  2633.     addl d0,d1
  2634.     movel d1,d0
  2635.     asll #2,d0
  2636.     movel d0,d1
  2637.     addl #_bi+324,d1
  2638.     movel d1,sp@-
  2639.     pea 68:w
  2640.     movel #32769,sp@-
  2641.     jbsr _add_bi_record
  2642.     addqw #8,sp
  2643.     addqw #4,sp
  2644.     tstl d0
  2645.     jne L275
  2646.     clrl d0
  2647.     jra L257
  2648. L275:
  2649. L273:
  2650.     addql #1,a5@(-4)
  2651.     jra L271
  2652. L272:
  2653.     pea _bi+1412
  2654.     pea 4:w
  2655.     movel #32770,sp@-
  2656.     jbsr _add_bi_record
  2657.     addqw #8,sp
  2658.     addqw #4,sp
  2659.     tstl d0
  2660.     jne L276
  2661.     clrl d0
  2662.     jra L257
  2663. L276:
  2664.     pea _bi+1416
  2665.     pea 1:w
  2666.     movel #32771,sp@-
  2667.     jbsr _add_bi_record
  2668.     addqw #8,sp
  2669.     addqw #4,sp
  2670.     tstl d0
  2671.     jne L277
  2672.     clrl d0
  2673.     jra L257
  2674. L277:
  2675.     pea _bi+1417
  2676.     pea 1:w
  2677.     movel #32772,sp@-
  2678.     jbsr _add_bi_record
  2679.     addqw #8,sp
  2680.     addqw #4,sp
  2681.     tstl d0
  2682.     jne L278
  2683.     clrl d0
  2684.     jra L257
  2685. L278:
  2686.     pea _bi+1418
  2687.     pea 4:w
  2688.     movel #32773,sp@-
  2689.     jbsr _add_bi_record
  2690.     addqw #8,sp
  2691.     addqw #4,sp
  2692.     tstl d0
  2693.     jne L279
  2694.     clrl d0
  2695.     jra L257
  2696. L279:
  2697.     pea _bi+1422
  2698.     pea 4:w
  2699.     movel #32774,sp@-
  2700.     jbsr _add_bi_record
  2701.     addqw #8,sp
  2702.     addqw #4,sp
  2703.     tstl d0
  2704.     jne L280
  2705.     clrl d0
  2706.     jra L257
  2707. L280:
  2708.     pea _bi+1426
  2709.     pea 2:w
  2710.     movel #32775,sp@-
  2711.     jbsr _add_bi_record
  2712.     addqw #8,sp
  2713.     addqw #4,sp
  2714.     tstl d0
  2715.     jne L281
  2716.     clrl d0
  2717.     jra L257
  2718. L281:
  2719.     lea _bi_union,a1
  2720.     addl _bi_size,a1
  2721.     movel a1,a5@(-8)
  2722.     movel a5@(-8),a0
  2723.     clrw a0@
  2724.     addql #2,_bi_size
  2725.     moveq #1,d0
  2726.     jra L257
  2727. L257:
  2728.     movel a5@(-12),d2
  2729.     unlk a5
  2730.     rts
  2731. LC120:
  2732.     .ascii "Can't add bootinfo record. Ask a wizard to enlarge me.\12\0"
  2733.     .even
  2734. _add_bi_record:
  2735.     link a5,#-12
  2736.     moveml #0x3020,sp@-
  2737.     movel a5@(8),d2
  2738.     movel a5@(12),d3
  2739.     movew d2,a5@(-2)
  2740.     movew d3,a5@(-4)
  2741.     clrl d0
  2742.     movew a5@(-4),d0
  2743.     addql #7,d0
  2744.     moveq #-4,d1
  2745.     andl d0,d1
  2746.     movel d1,a5@(-12)
  2747.     movel _bi_size,a0
  2748.     addl a5@(-12),a0
  2749.     lea a0@(2),a1
  2750.     cmpl #4096,a1
  2751.     jls L283
  2752.     movel _linuxboot_args,a0
  2753.     pea LC120
  2754.     movel a0@(1452),a2
  2755.     jbsr a2@
  2756.     addqw #4,sp
  2757.     clrl d0
  2758.     jra L282
  2759. L283:
  2760.     movel #_bi_union,d1
  2761.     addl _bi_size,d1
  2762.     movel d1,a5@(-8)
  2763.     movel a5@(-8),a0
  2764.     movew a5@(-2),a0@
  2765.     movel a5@(-8),a0
  2766.     movew a5@(-10),a0@(2)
  2767.     clrl d0
  2768.     movew a5@(-4),d0
  2769.     movel d0,sp@-
  2770.     movel a5@(16),sp@-
  2771.     movel a5@(-8),d0
  2772.     addql #4,d0
  2773.     movel d0,sp@-
  2774.     jbsr _memcpy
  2775.     addqw #8,sp
  2776.     addqw #4,sp
  2777.     movel a5@(-12),d1
  2778.     addl d1,_bi_size
  2779.     moveq #1,d0
  2780.     jra L282
  2781. L282:
  2782.     moveml a5@(-24),#0x40c
  2783.     unlk a5
  2784.     rts
  2785.     .even
  2786. _add_bi_string:
  2787.     link a5,#-4
  2788.     movel d2,sp@-
  2789.     movel a5@(8),d2
  2790.     movew d2,a5@(-2)
  2791.     movel a5@(12),sp@-
  2792.     movel a5@(12),sp@-
  2793.     jbsr _strlen
  2794.     addqw #4,sp
  2795.     movew d0,d1
  2796.     addqw #1,d1
  2797.     clrl d0
  2798.     movew d1,d0
  2799.     movel d0,sp@-
  2800.     clrl d0
  2801.     movew a5@(-2),d0
  2802.     movel d0,sp@-
  2803.     jbsr _add_bi_record
  2804.     addqw #8,sp
  2805.     addqw #4,sp
  2806.     movel d0,d1
  2807.     movel d1,d0
  2808.     jra L284
  2809. L284:
  2810.     movel a5@(-8),d2
  2811.     unlk a5
  2812.     rts
  2813. LC121:
  2814.     .ascii "CPU type 0x%08lx not supported by kernel\12\0"
  2815. LC122:
  2816.     .ascii "FPU type 0x%08lx not supported by kernel\12\0"
  2817. LC123:
  2818.     .ascii "Warning: using only %ld blocks of memory\12\0"
  2819. LC124:
  2820.     .ascii "Warning: using only %ld AutoConfig devices\12\0"
  2821.     .even
  2822. _create_compat_bootinfo:
  2823.     link a5,#-4
  2824.     moveml #0x3c20,sp@-
  2825.     movel _bi,_compat_bootinfo
  2826.     moveq #1,d0
  2827.     andl _bi+4,d0
  2828.     tstl d0
  2829.     jeq L286
  2830.     moveq #1,d5
  2831.     movel d5,_compat_bootinfo+4
  2832.     jra L287
  2833. L286:
  2834.     moveq #2,d0
  2835.     andl _bi+4,d0
  2836.     tstl d0
  2837.     jeq L288
  2838.     moveq #2,d5
  2839.     movel d5,_compat_bootinfo+4
  2840.     jra L289
  2841. L288:
  2842.     moveq #4,d0
  2843.     andl _bi+4,d0
  2844.     tstl d0
  2845.     jeq L290
  2846.     moveq #4,d5
  2847.     movel d5,_compat_bootinfo+4
  2848.     jra L291
  2849. L290:
  2850.     moveq #8,d0
  2851.     andl _bi+4,d0
  2852.     tstl d0
  2853.     jeq L292
  2854.     moveq #8,d5
  2855.     movel d5,_compat_bootinfo+4
  2856.     jra L293
  2857. L292:
  2858.     movel _linuxboot_args,a0
  2859.     movel _bi+4,sp@-
  2860.     pea LC121
  2861.     movel a0@(1464),a2
  2862.     jbsr a2@
  2863.     addqw #8,sp
  2864.     clrl d0
  2865.     jra L285
  2866. L293:
  2867. L291:
  2868. L289:
  2869. L287:
  2870.     moveq #1,d0
  2871.     andl _bi+8,d0
  2872.     tstl d0
  2873.     jeq L294
  2874.     moveq #32,d5
  2875.     orl d5,_compat_bootinfo+4
  2876.     jra L295
  2877. L294:
  2878.     moveq #2,d0
  2879.     andl _bi+8,d0
  2880.     tstl d0
  2881.     jeq L296
  2882.     moveq #64,d5
  2883.     orl d5,_compat_bootinfo+4
  2884.     jra L297
  2885. L296:
  2886.     moveq #4,d0
  2887.     andl _bi+8,d0
  2888.     tstl d0
  2889.     jeq L298
  2890.     orw #128,_compat_bootinfo+6
  2891.     jra L299
  2892. L298:
  2893.     moveq #8,d0
  2894.     andl _bi+8,d0
  2895.     tstl d0
  2896.     jeq L300
  2897.     orw #256,_compat_bootinfo+6
  2898.     jra L301
  2899. L300:
  2900.     tstl _bi+8
  2901.     jeq L302
  2902.     movel _linuxboot_args,a0
  2903.     movel _bi+8,sp@-
  2904.     pea LC122
  2905.     movel a0@(1464),a2
  2906.     jbsr a2@
  2907.     addqw #8,sp
  2908.     clrl d0
  2909.     jra L285
  2910. L302:
  2911. L301:
  2912. L299:
  2913. L297:
  2914. L295:
  2915.     movel _bi+16,_compat_bootinfo+40
  2916.     moveq #4,d5
  2917.     cmpl _compat_bootinfo+40,d5
  2918.     jge L303
  2919.     movel _linuxboot_args,a0
  2920.     pea 4:w
  2921.     pea LC123
  2922.     movel a0@(1464),a2
  2923.     jbsr a2@
  2924.     addqw #8,sp
  2925.     moveq #4,d5
  2926.     movel d5,_compat_bootinfo+40
  2927. L303:
  2928.     nop
  2929.     clrl a5@(-4)
  2930. L304:
  2931.     movel a5@(-4),d5
  2932.     cmpl _compat_bootinfo+40,d5
  2933.     jcs L307
  2934.     jra L305
  2935. L307:
  2936.     movel a5@(-4),d0
  2937.     movel d0,d1
  2938.     movel d1,d0
  2939.     asll #3,d0
  2940.     lea _compat_bootinfo,a0
  2941.     movel a5@(-4),d1
  2942.     movel d1,d2
  2943.     movel d2,d1
  2944.     asll #3,d1
  2945.     lea _bi,a1
  2946.     movel a1@(20,d1:l),a0@(8,d0:l)
  2947.     movel a5@(-4),d0
  2948.     movel d0,d1
  2949.     movel d1,d0
  2950.     asll #3,d0
  2951.     lea _compat_bootinfo,a0
  2952.     movel a5@(-4),d1
  2953.     movel d1,d2
  2954.     movel d2,d1
  2955.     asll #3,d1
  2956.     lea _bi,a1
  2957.     movel a1@(24,d1:l),a0@(12,d0:l)
  2958. L306:
  2959.     addql #1,a5@(-4)
  2960.     jra L304
  2961. L305:
  2962.     tstl _bi+56
  2963.     jeq L308
  2964.     movel _bi+56,d0
  2965.     addl #1023,d0
  2966.     movel d0,d1
  2967.     moveq #10,d5
  2968.     lsrl d5,d1
  2969.     movel d1,_compat_bootinfo+44
  2970.     movel _bi+52,_compat_bootinfo+48
  2971.     jra L309
  2972. L308:
  2973.     clrl _compat_bootinfo+44
  2974.     clrl _compat_bootinfo+48
  2975. L309:
  2976.     pea 256:w
  2977.     pea _bi+60
  2978.     pea _compat_bootinfo+52
  2979.     jbsr _strncpy
  2980.     addqw #8,sp
  2981.     addqw #4,sp
  2982.     clrb _compat_bootinfo+307
  2983.     movel _bi+316,_compat_bootinfo+308
  2984.     movel _bi+320,_compat_bootinfo+312
  2985.     moveq #16,d5
  2986.     cmpl _compat_bootinfo+312,d5
  2987.     jge L310
  2988.     movel _linuxboot_args,a0
  2989.     pea 16:w
  2990.     pea LC124
  2991.     movel a0@(1464),a2
  2992.     jbsr a2@
  2993.     addqw #8,sp
  2994.     moveq #16,d5
  2995.     movel d5,_compat_bootinfo+312
  2996. L310:
  2997.     nop
  2998.     clrl a5@(-4)
  2999. L311:
  3000.     movel a5@(-4),d5
  3001.     cmpl _compat_bootinfo+312,d5
  3002.     jcs L314
  3003.     jra L312
  3004. L314:
  3005.     movel a5@(-4),d0
  3006.     movel d0,d2
  3007.     movel d2,d1
  3008.     asll #4,d1
  3009.     addl d0,d1
  3010.     movel d1,d0
  3011.     asll #2,d0
  3012.     movel #_compat_bootinfo+316,d1
  3013.     movel a5@(-4),d2
  3014.     movel d2,d4
  3015.     movel d4,d3
  3016.     asll #4,d3
  3017.     addl d2,d3
  3018.     movel d3,d2
  3019.     asll #2,d2
  3020.     movel #_bi+324,d3
  3021.     movel d2,a0
  3022.     addl d3,a0
  3023.     movel d0,a1
  3024.     addl d1,a1
  3025.     pea 68:w
  3026.     movel a1,sp@-
  3027.     movel a0,sp@-
  3028.     jbsr _bcopy
  3029.     addqw #8,sp
  3030.     addqw #4,sp
  3031. L313:
  3032.     addql #1,a5@(-4)
  3033.     jra L311
  3034. L312:
  3035.     movel _bi+1412,_compat_bootinfo+1404
  3036.     moveb _bi+1416,_compat_bootinfo+1408
  3037.     moveb _bi+1417,_compat_bootinfo+1409
  3038.     movel _bi+1418,_compat_bootinfo+1410
  3039.     movel _bi+1422,_compat_bootinfo+1414
  3040.     clrl _compat_bootinfo+1418
  3041.     moveq #1,d0
  3042.     jra L285
  3043. L285:
  3044.     moveml a5@(-24),#0x43c
  3045.     unlk a5
  3046.     rts
  3047. LC125:
  3048.     .ascii "Kernel has no bootinfo version info, assuming 0.0\12\0"
  3049. LC126:
  3050.     .ascii "Bootstrap's bootinfo version: %ld.%ld\12\0"
  3051. LC127:
  3052.     .ascii "Kernel's bootinfo version   : %ld.%ld\12\0"
  3053. LC128:
  3054.     .ascii "Warning: Bootinfo version of bootstrap and kernel differ!\12\0"
  3055. LC129:
  3056.     .ascii "         Certain features may not work.\12\0"
  3057. LC130:
  3058.     .ascii "(using backwards compatibility mode)\12\0"
  3059. LC131:
  3060.     .ascii "old\0"
  3061. LC132:
  3062.     .ascii "new\0"
  3063. LC133:
  3064.     .ascii "\12This bootstrap is too %s for this kernel!\12\0"
  3065.     .even
  3066. _check_bootinfo_version:
  3067.     link a5,#-28
  3068.     movel a2,sp@-
  3069.     movel d2,sp@-
  3070.     movel a5@(8),a5@(-4)
  3071.     clrl a5@(-8)
  3072.     movel a5@(-4),a0
  3073.     cmpl #1112102426,a0@(2)
  3074.     jne L316
  3075.     clrl a5@(-12)
  3076. L317:
  3077.     movel a5@(-4),a0
  3078.     movel a5@(-12),d0
  3079.     movel d0,d1
  3080.     movel d1,d0
  3081.     asll #3,d0
  3082.     tstl a0@(6,d0:l)
  3083.     jne L320
  3084.     jra L318
  3085. L320:
  3086.     movel a5@(-4),a0
  3087.     movel a5@(-12),d0
  3088.     movel d0,d1
  3089.     movel d1,d0
  3090.     asll #3,d0
  3091.     moveq #1,d2
  3092.     cmpl a0@(6,d0:l),d2
  3093.     jne L321
  3094.     movel a5@(-4),a0
  3095.     movel a5@(-12),d0
  3096.     movel d0,d1
  3097.     movel d1,d0
  3098.     asll #3,d0
  3099.     movel a0@(10,d0:l),a5@(-8)
  3100.     jra L318
  3101. L321:
  3102. L319:
  3103.     addql #1,a5@(-12)
  3104.     jra L317
  3105. L318:
  3106. L316:
  3107.     tstl a5@(-8)
  3108.     jne L322
  3109.     movel _linuxboot_args,a0
  3110.     pea LC125
  3111.     movel a0@(1452),a2
  3112.     jbsr a2@
  3113.     addqw #4,sp
  3114. L322:
  3115.     movel a5@(-8),d1
  3116.     movel d1,d0
  3117.     clrw d0
  3118.     swap d0
  3119.     movel d0,d2
  3120.     andl #65535,d2
  3121.     movel d2,a5@(-16)
  3122.     movel a5@(-8),d2
  3123.     andl #65535,d2
  3124.     movel d2,a5@(-20)
  3125.     moveq #2,d2
  3126.     movel d2,a5@(-24)
  3127.     clrl a5@(-28)
  3128.     movel _linuxboot_args,a0
  3129.     movel a5@(-28),sp@-
  3130.     movel a5@(-24),sp@-
  3131.     pea LC126
  3132.     movel a0@(1464),a2
  3133.     jbsr a2@
  3134.     addqw #8,sp
  3135.     addqw #4,sp
  3136.     movel _linuxboot_args,a0
  3137.     movel a5@(-20),sp@-
  3138.     movel a5@(-16),sp@-
  3139.     pea LC127
  3140.     movel a0@(1464),a2
  3141.     jbsr a2@
  3142.     addqw #8,sp
  3143.     addqw #4,sp
  3144.     movel a5@(-16),d0
  3145.     moveq #1,d2
  3146.     cmpl d0,d2
  3147.     jeq L326
  3148.     moveq #2,d2
  3149.     cmpl d0,d2
  3150.     jeq L324
  3151.     jra L327
  3152. L324:
  3153.     movel a5@(-20),d2
  3154.     cmpl a5@(-28),d2
  3155.     jle L325
  3156.     movel _linuxboot_args,a0
  3157.     pea LC128
  3158.     movel a0@(1452),a2
  3159.     jbsr a2@
  3160.     addqw #4,sp
  3161.     movel _linuxboot_args,a0
  3162.     pea LC129
  3163.     movel a0@(1452),a2
  3164.     jbsr a2@
  3165.     addqw #4,sp
  3166. L325:
  3167.     jra L323
  3168. L326:
  3169.     movel _linuxboot_args,a0
  3170.     pea LC130
  3171.     movel a0@(1452),a2
  3172.     jbsr a2@
  3173.     addqw #4,sp
  3174.     jra L323
  3175. L327:
  3176.     movel _linuxboot_args,a0
  3177.     movel a5@(-24),d2
  3178.     cmpl a5@(-16),d2
  3179.     jge L328
  3180.     movel #LC131,d0
  3181.     jra L329
  3182. L328:
  3183.     movel #LC132,d0
  3184. L329:
  3185.     movel d0,sp@-
  3186.     pea LC133
  3187.     movel a0@(1464),a2
  3188.     jbsr a2@
  3189.     addqw #8,sp
  3190.     clrl d0
  3191.     jra L315
  3192. L323:
  3193.     movel a5@(-16),d0
  3194.     jra L315
  3195. L315:
  3196.     movel a5@(-36),d2
  3197.     movel a5@(-32),a2
  3198.     unlk a5
  3199.     rts
  3200.     .even
  3201. _start_kernel:
  3202.     link a5,#0
  3203.     moveml #0x3038,sp@-
  3204.     movel a5@(8),a0
  3205.     movel a5@(12),a2
  3206.     movel a5@(16),a3
  3207.     movel a5@(20),a4
  3208.     movel a5@(24),d0
  3209.     movel a5@(28),d1
  3210.     movel a5@(32),d2
  3211.     movel _bi_size,d3
  3212. #APP
  3213.     movel a2,sp;jmp a0@
  3214. #NO_APP
  3215. L332:
  3216. L334:
  3217.     jra L334
  3218. L333:
  3219. L331:
  3220.     moveml a5@(-20),#0x1c0c
  3221.     unlk a5
  3222.     rts
  3223. #APP
  3224.     .text
  3225. .align 4
  3226. copyall:
  3227.                 | /* copy kernel text and data */
  3228.     movel    a3,a0        | src = (u_long *)memptr;
  3229.     movel    a0,a2        | limit = (u_long *)(memptr+kernel_size);
  3230.     addl    d2,a2
  3231.     movel    a4,a1        | dest = (u_long *)start_mem;
  3232. 1:    cmpl    a0,a2
  3233.     jeq    2f        | while (src < limit)
  3234.     moveb    a0@+,a1@+    |  *dest++ = *src++;
  3235.     jra    1b
  3236. 2:
  3237.                 | /* copy bootinfo to end of bss */
  3238.     movel    a3,a0        | src = (u_long *)(memptr+kernel_size);
  3239.     addl    d2,a0        | dest = end of bss (already in a1)
  3240.     movel    d3,d7        | count = bi_size
  3241.     subql    #1,d7
  3242. 1:    moveb    a0@+,a1@+    | while (--count > -1)
  3243.     dbra    d7,1b        |     *dest++ = *src++
  3244.  
  3245.                 | /* copy the ramdisk to the top of memory */
  3246.                 | /* (from back to front) */
  3247.     movel    a4,a1        | dest = (u_long *)(start_mem+mem_size);
  3248.     addl    d0,a1
  3249.     movel    a3,a2        | limit = (u_long *)(memptr+kernel_size +
  3250.     addl    d2,a2        |             bi_size);
  3251.     addl    d3,a2
  3252.     movel    a2,a0        | src = (u_long *)((u_long)limit+rd_size);
  3253.     addl    d1,a0
  3254. 1:    cmpl    a0,a2
  3255.     beqs    2f        | while (src > limit)
  3256.     moveb    a0@-,a1@-    |     *--dest = *--src;
  3257.     bras    1b
  3258. 2:
  3259.                 | /* jump to start of kernel */
  3260.     movel    a4,a0        | jump_to (start_mem);
  3261.     jmp    a0@
  3262. copyallend:
  3263.  
  3264.     .text
  3265. .align 4
  3266. maprommed:
  3267.     oriw    #0x0700,sr
  3268.     moveml    #0x3f20,sp@-
  3269.                 | /* Save cache settings */
  3270.     .long    0x4e7a1002    | movec cacr,d1 */
  3271.                 | /* Save MMU settings */
  3272.     .long    0x4e7a2003    | movec tc,d2
  3273.     .long    0x4e7a3004    | movec itt0,d3
  3274.     .long    0x4e7a4005    | movec itt1,d4
  3275.     .long    0x4e7a5006    | movec dtt0,d5
  3276.     .long    0x4e7a6007    | movec dtt1,d6
  3277.     moveq    #0,d0
  3278.     movel    d0,a2
  3279.                 | /* Disable caches */
  3280.     .long    0x4e7b0002    | movec d0,cacr
  3281.                 | /* Disable MMU */
  3282.     .long    0x4e7b0003    | movec d0,tc
  3283.     .long    0x4e7b0004    | movec d0,itt0
  3284.     .long    0x4e7b0005    | movec d0,itt1
  3285.     .long    0x4e7b0006    | movec d0,dtt0
  3286.     .long    0x4e7b0007    | movec d0,dtt1
  3287.     lea    0x07f80000,a0
  3288.     lea    0x00f80000,a1
  3289.     movel    a0@,d7
  3290.     cmpl    a1@,d7
  3291.     jne    1f
  3292.     movel    d7,d0
  3293.     notl    d0
  3294.     movel    d0,a0@
  3295.     nop            | /* Thanks to Jörg Mayer! */
  3296.     cmpl    a1@,d0
  3297.     jne    1f
  3298.     moveq    #-1,d0        | /* MapROMmed A3640 present */
  3299.     movel    d0,a2
  3300. 1:    movel    d7,a0@
  3301.                 | /* Restore MMU settings */
  3302.     .long    0x4e7b2003    | movec d2,tc
  3303.     .long    0x4e7b3004    | movec d3,itt0
  3304.     .long    0x4e7b4005    | movec d4,itt1
  3305.     .long    0x4e7b5006    | movec d5,dtt0
  3306.     .long    0x4e7b6007    | movec d6,dtt1
  3307.                 | /* Restore cache settings */
  3308.     .long    0x4e7b1002    | movec d1,cacr
  3309.     movel    a2,d0
  3310.     moveml    sp@+,#0x04fc
  3311.     rte
  3312.  
  3313. #NO_APP
  3314.     .even
  3315. _reset_rb3:
  3316.     link a5,#-4
  3317.     movel a2,sp@-
  3318.     movel a5@(8),a0
  3319.     movel a0@(32),d0
  3320.     addl #16785408,d0
  3321.     movel d0,a5@(-4)
  3322.     movel a5@(-4),a0
  3323.     moveb #1,a0@
  3324.     movel _linuxboot_args,a0
  3325.     movel #1000000,sp@-
  3326.     movel a0@(1488),a2
  3327.     jbsr a2@
  3328.     addqw #4,sp
  3329.     movel a5@(-4),a0
  3330.     clrb a0@
  3331. L335:
  3332.     movel a5@(-8),a2
  3333.     unlk a5
  3334.     rts
  3335.     .even
  3336. _reset_piccolo:
  3337.     link a5,#-4
  3338.     movel a2,sp@-
  3339.     movel a5@(8),a0
  3340.     movel a0@(32),d0
  3341.     addl #32768,d0
  3342.     movel d0,a5@(-4)
  3343.     movel a5@(-4),a0
  3344.     moveb #1,a0@
  3345.     movel _linuxboot_args,a0
  3346.     movel #1000000,sp@-
  3347.     movel a0@(1488),a2
  3348.     jbsr a2@
  3349.     addqw #4,sp
  3350.     movel a5@(-4),a0
  3351.     moveb #81,a0@
  3352. L336:
  3353.     movel a5@(-8),a2
  3354.     unlk a5
  3355.     rts
  3356.     .even
  3357. _reset_sd64:
  3358.     link a5,#-4
  3359.     movel a2,sp@-
  3360.     movel a5@(8),a0
  3361.     movel a0@(32),d0
  3362.     addl #32768,d0
  3363.     movel d0,a5@(-4)
  3364.     movel a5@(-4),a0
  3365.     moveb #31,a0@
  3366.     movel _linuxboot_args,a0
  3367.     movel #1000000,sp@-
  3368.     movel a0@(1488),a2
  3369.     jbsr a2@
  3370.     addqw #4,sp
  3371.     movel a5@(-4),a0
  3372.     moveb #79,a0@
  3373. L337:
  3374.     movel a5@(-8),a2
  3375.     unlk a5
  3376.     rts
  3377.     .even
  3378. _reset_ariadne:
  3379.     link a5,#-36
  3380.     movel d2,sp@-
  3381.     movel a5@(8),a0
  3382.     movel a0@(32),d2
  3383.     addl #880,d2
  3384.     movel d2,a5@(-4)
  3385.     movel a5@(8),a0
  3386.     movel a0@(32),d2
  3387.     addl #882,d2
  3388.     movel d2,a5@(-8)
  3389.     movel a5@(8),a0
  3390.     movel a0@(32),d2
  3391.     addl #884,d2
  3392.     movel d2,a5@(-12)
  3393.     movel a5@(8),a0
  3394.     movel a0@(32),d2
  3395.     addl #4100,d2
  3396.     movel d2,a5@(-16)
  3397.     movel a5@(8),a0
  3398.     movel a0@(32),d2
  3399.     addl #4102,d2
  3400.     movel d2,a5@(-20)
  3401.     movel a5@(8),a0
  3402.     movel a0@(32),d2
  3403.     addl #4107,d2
  3404.     movel d2,a5@(-24)
  3405.     movel a5@(8),a0
  3406.     movel a0@(32),d2
  3407.     addl #4110,d2
  3408.     movel d2,a5@(-28)
  3409.     movel a5@(8),a0
  3410.     movel a0@(32),d2
  3411.     addl #4122,d2
  3412.     movel d2,a5@(-32)
  3413.     jbsr _Disable
  3414.     movel a5@(-12),a0
  3415.     movew a0@,a5@(-34)
  3416.     movel a5@(-8),a0
  3417.     clrw a0@
  3418.     movel a5@(-4),a0
  3419.     movew #1024,a0@
  3420.     movel a5@(-24),a0
  3421.     movel a5@(-24),a1
  3422.     moveb a1@,d0
  3423.     moveb d0,d1
  3424.     andb #253,d1
  3425.     moveb d1,a0@
  3426.     movel a5@(-28),a0
  3427.     movel a5@(-28),a1
  3428.     moveb a1@,d0
  3429.     moveb d0,d1
  3430.     andb #253,d1
  3431.     moveb d1,a0@
  3432.     movel a5@(-32),a0
  3433.     moveb #5,a0@
  3434.     movel a5@(-16),a0
  3435.     clrb a0@
  3436.     movel a5@(-20),a0
  3437.     clrb a0@
  3438.     jbsr _Enable
  3439. L338:
  3440.     movel a5@(-40),d2
  3441.     unlk a5
  3442.     rts
  3443.     .even
  3444. _reset_hydra:
  3445.     link a5,#-12
  3446.     movel a5@(8),a0
  3447.     movel a0@(32),a1
  3448.     addl #65505,a1
  3449.     movel a1,a5@(-4)
  3450.     movel a5@(8),a0
  3451.     movel a0@(32),a1
  3452.     addl #65519,a1
  3453.     movel a1,a5@(-8)
  3454.     movel #5000,a5@(-12)
  3455.     jbsr _Disable
  3456.     movel a5@(-4),a0
  3457.     moveb #33,a0@
  3458. L340:
  3459.     movel a5@(-8),a0
  3460.     moveb a0@,d1
  3461.     moveb d1,d0
  3462.     andb #128,d0
  3463.     tstb d0
  3464.     jne L343
  3465.     subql #1,a5@(-12)
  3466.     tstl a5@(-12)
  3467.     jne L342
  3468.     jra L343
  3469. L343:
  3470.     jra L341
  3471. L342:
  3472.     jra L340
  3473. L341:
  3474.     jbsr _Enable
  3475. L339:
  3476.     unlk a5
  3477.     rts
  3478. .data
  3479.     .even
  3480. _ZFileSize:
  3481.     .long 0
  3482.     .even
  3483. _ZFpos:
  3484.     .long 0
  3485.     .even
  3486. _Zwpos:
  3487.     .long 0
  3488.     .even
  3489. _Zinfd:
  3490.     .long 0
  3491.     .even
  3492. _insize:
  3493.     .long 0
  3494.     .even
  3495. _inptr:
  3496.     .long 0
  3497.     .even
  3498. _outcnt:
  3499.     .long 0
  3500.     .even
  3501. _exit_code:
  3502.     .long 0
  3503.     .even
  3504. _bytes_out:
  3505.     .long 0
  3506.     .even
  3507. _border:
  3508.     .long 16
  3509.     .long 17
  3510.     .long 18
  3511.     .long 0
  3512.     .long 8
  3513.     .long 7
  3514.     .long 9
  3515.     .long 6
  3516.     .long 10
  3517.     .long 5
  3518.     .long 11
  3519.     .long 4
  3520.     .long 12
  3521.     .long 3
  3522.     .long 13
  3523.     .long 2
  3524.     .long 14
  3525.     .long 1
  3526.     .long 15
  3527.     .even
  3528. _cplens:
  3529.     .word 3
  3530.     .word 4
  3531.     .word 5
  3532.     .word 6
  3533.     .word 7
  3534.     .word 8
  3535.     .word 9
  3536.     .word 10
  3537.     .word 11
  3538.     .word 13
  3539.     .word 15
  3540.     .word 17
  3541.     .word 19
  3542.     .word 23
  3543.     .word 27
  3544.     .word 31
  3545.     .word 35
  3546.     .word 43
  3547.     .word 51
  3548.     .word 59
  3549.     .word 67
  3550.     .word 83
  3551.     .word 99
  3552.     .word 115
  3553.     .word 131
  3554.     .word 163
  3555.     .word 195
  3556.     .word 227
  3557.     .word 258
  3558.     .word 0
  3559.     .word 0
  3560.     .even
  3561. _cplext:
  3562.     .word 0
  3563.     .word 0
  3564.     .word 0
  3565.     .word 0
  3566.     .word 0
  3567.     .word 0
  3568.     .word 0
  3569.     .word 0
  3570.     .word 1
  3571.     .word 1
  3572.     .word 1
  3573.     .word 1
  3574.     .word 2
  3575.     .word 2
  3576.     .word 2
  3577.     .word 2
  3578.     .word 3
  3579.     .word 3
  3580.     .word 3
  3581.     .word 3
  3582.     .word 4
  3583.     .word 4
  3584.     .word 4
  3585.     .word 4
  3586.     .word 5
  3587.     .word 5
  3588.     .word 5
  3589.     .word 5
  3590.     .word 0
  3591.     .word 99
  3592.     .word 99
  3593.     .even
  3594. _cpdist:
  3595.     .word 1
  3596.     .word 2
  3597.     .word 3
  3598.     .word 4
  3599.     .word 5
  3600.     .word 7
  3601.     .word 9
  3602.     .word 13
  3603.     .word 17
  3604.     .word 25
  3605.     .word 33
  3606.     .word 49
  3607.     .word 65
  3608.     .word 97
  3609.     .word 129
  3610.     .word 193
  3611.     .word 257
  3612.     .word 385
  3613.     .word 513
  3614.     .word 769
  3615.     .word 1025
  3616.     .word 1537
  3617.     .word 2049
  3618.     .word 3073
  3619.     .word 4097
  3620.     .word 6145
  3621.     .word 8193
  3622.     .word 12289
  3623.     .word 16385
  3624.     .word 24577
  3625.     .even
  3626. _cpdext:
  3627.     .word 0
  3628.     .word 0
  3629.     .word 0
  3630.     .word 0
  3631.     .word 1
  3632.     .word 1
  3633.     .word 2
  3634.     .word 2
  3635.     .word 3
  3636.     .word 3
  3637.     .word 4
  3638.     .word 4
  3639.     .word 5
  3640.     .word 5
  3641.     .word 6
  3642.     .word 6
  3643.     .word 7
  3644.     .word 7
  3645.     .word 8
  3646.     .word 8
  3647.     .word 9
  3648.     .word 9
  3649.     .word 10
  3650.     .word 10
  3651.     .word 11
  3652.     .word 11
  3653.     .word 12
  3654.     .word 12
  3655.     .word 13
  3656.     .word 13
  3657.     .even
  3658. _mask_bits:
  3659.     .word 0
  3660.     .word 1
  3661.     .word 3
  3662.     .word 7
  3663.     .word 15
  3664.     .word 31
  3665.     .word 63
  3666.     .word 127
  3667.     .word 255
  3668.     .word 511
  3669.     .word 1023
  3670.     .word 2047
  3671.     .word 4095
  3672.     .word 8191
  3673.     .word 16383
  3674.     .word 32767
  3675.     .word 65535
  3676.     .even
  3677. _lbits:
  3678.     .long 9
  3679.     .even
  3680. _dbits:
  3681.     .long 6
  3682. .text
  3683.     .even
  3684. _huft_build:
  3685.     link a5,#-1392
  3686.     moveml #0x3e3a,sp@-
  3687.     pea 68:w
  3688.     clrl sp@-
  3689.     lea a5@(-72),a0
  3690.     movel a0,sp@-
  3691.     jbsr _memset
  3692.     addqw #8,sp
  3693.     addqw #4,sp
  3694.     movel a5@(8),a3
  3695.     movel a5@(12),d2
  3696. L345:
  3697.     movel a3@,d0
  3698.     addql #1,a5@(-72,d0:l:4)
  3699.     addqw #4,a3
  3700. L347:
  3701.     subql #1,d2
  3702.     tstl d2
  3703.     jne L348
  3704.     jra L346
  3705. L348:
  3706.     jra L345
  3707. L346:
  3708.     movel a5@(-72),d6
  3709.     cmpl a5@(12),d6
  3710.     jne L349
  3711.     movel a5@(28),a0
  3712.     clrl a0@
  3713.     movel a5@(32),a0
  3714.     clrl a0@
  3715.     clrl d0
  3716.     jra L344
  3717. L349:
  3718.     movel a5@(32),a0
  3719.     movel a0@,a5@(-88)
  3720.     moveq #1,d3
  3721. L350:
  3722.     moveq #16,d6
  3723.     cmpl d3,d6
  3724.     jcc L353
  3725.     jra L351
  3726. L353:
  3727.     tstl a5@(-72,d3:l:4)
  3728.     jeq L354
  3729.     jra L351
  3730. L354:
  3731. L352:
  3732.     addql #1,d3
  3733.     jra L350
  3734. L351:
  3735.     movel d3,a2
  3736.     cmpl a5@(-88),d3
  3737.     jls L355
  3738.     movel d3,a5@(-88)
  3739. L355:
  3740.     nop
  3741.     moveq #16,d2
  3742. L356:
  3743.     tstl d2
  3744.     jne L359
  3745.     jra L357
  3746. L359:
  3747.     tstl a5@(-72,d2:l:4)
  3748.     jeq L360
  3749.     jra L357
  3750. L360:
  3751. L358:
  3752.     subql #1,d2
  3753.     jra L356
  3754. L357:
  3755.     movel d2,a5@(-80)
  3756.     cmpl a5@(-88),d2
  3757.     jcc L361
  3758.     movel d2,a5@(-88)
  3759. L361:
  3760.     movel a5@(32),a0
  3761.     movel a5@(-88),a0@
  3762.     moveq #1,d0
  3763.     movel d0,d1
  3764.     asll d3,d1
  3765.     movel d1,a5@(-1386)
  3766. L362:
  3767.     cmpl d3,d2
  3768.     jhi L365
  3769.     jra L363
  3770. L365:
  3771.     movel a5@(-1386),d0
  3772.     subl a5@(-72,d3:l:4),d0
  3773.     movel d0,d1
  3774.     movel d1,a5@(-1386)
  3775.     tstl d1
  3776.     jge L366
  3777.     moveq #2,d0
  3778.     jra L344
  3779. L366:
  3780. L364:
  3781.     addql #1,d3
  3782.     movel a5@(-1386),d0
  3783.     movel d0,d1
  3784.     addl d1,d1
  3785.     movel d1,a5@(-1386)
  3786.     jra L362
  3787. L363:
  3788.     movel a5@(-1386),d0
  3789.     subl a5@(-72,d2:l:4),d0
  3790.     movel d0,d1
  3791.     movel d1,a5@(-1386)
  3792.     tstl d1
  3793.     jge L367
  3794.     moveq #2,d0
  3795.     jra L344
  3796. L367:
  3797.     movel a5@(-1386),d6
  3798.     addl d6,a5@(-72,d2:l:4)
  3799.     clrl d3
  3800.     clrl a5@(-1374)
  3801.     lea a5@(-72),a3
  3802.     addqw #4,a3
  3803.     lea a5@(-1378),a0
  3804.     lea a0@(8),a6
  3805.     movel a6,a5@(-1382)
  3806. L368:
  3807.     subql #1,d2
  3808.     tstl d2
  3809.     jne L370
  3810.     jra L369
  3811. L370:
  3812.     movel a5@(-1382),a0
  3813.     addl a3@,d3
  3814.     movel d3,d0
  3815.     movel d0,a0@
  3816.     addqw #4,a3
  3817.     addql #4,a5@(-1382)
  3818.     jra L368
  3819. L369:
  3820.     movel a5@(8),a3
  3821.     clrl d2
  3822. L371:
  3823.     movel a3@,d3
  3824.     movel d3,d0
  3825.     addqw #4,a3
  3826.     tstl d0
  3827.     jeq L374
  3828.     movel d3,d0
  3829.     movel d0,d1
  3830.     asll #2,d1
  3831.     lea a5@(0,d1:l),a0
  3832.     movel a0@(-1378),d0
  3833.     movel d0,d1
  3834.     movel d1,d0
  3835.     asll #2,d0
  3836.     lea a5@(0,d0:l),a1
  3837.     movel d2,a1@(-1310)
  3838.     addql #1,a0@(-1378)
  3839. L374:
  3840. L373:
  3841.     addql #1,d2
  3842.     cmpl a5@(12),d2
  3843.     jcs L375
  3844.     jra L372
  3845. L375:
  3846.     jra L371
  3847. L372:
  3848.     clrl d2
  3849.     clrl a5@(-1378)
  3850.     lea a5@(-1310),a3
  3851.     moveq #-1,d6
  3852.     movel d6,a5@(-84)
  3853.     movel a5@(-88),d4
  3854.     negl d4
  3855.     clrl a5@(-158)
  3856.     subl a4,a4
  3857.     clrl a5@(-1390)
  3858. L376:
  3859.     cmpl a5@(-80),a2
  3860.     jle L379
  3861.     jra L377
  3862. L379:
  3863.     movel a5@(-72,a2:l:4),a5@(-4)
  3864. L380:
  3865.     subql #1,a5@(-4)
  3866.     moveq #-1,d6
  3867.     cmpl a5@(-4),d6
  3868.     jne L382
  3869.     jra L381
  3870. L382:
  3871. L383:
  3872.     movel d4,d0
  3873.     addl a5@(-88),d0
  3874.     cmpl a2,d0
  3875.     jlt L385
  3876.     jra L384
  3877. L385:
  3878.     addql #1,a5@(-84)
  3879.     addl a5@(-88),d4
  3880.     movel a5@(-80),d0
  3881.     subl d4,d0
  3882.     movel d0,d1
  3883.     movel d1,a5@(-1390)
  3884.     cmpl a5@(-88),d1
  3885.     jls L386
  3886.     movel a5@(-88),d0
  3887.     jra L387
  3888. L386:
  3889.     movel a5@(-1390),d0
  3890. L387:
  3891.     movel d0,a5@(-1390)
  3892.     movel a2,d3
  3893.     subl d4,d3
  3894.     movel d3,d0
  3895.     moveq #1,d5
  3896.     movel d5,d1
  3897.     asll d0,d1
  3898.     movel d1,d0
  3899.     movel d0,a5@(-76)
  3900.     movel a5@(-4),d1
  3901.     addql #1,d1
  3902.     cmpl d0,d1
  3903.     jcc L388
  3904.     movel a5@(-76),d0
  3905.     subql #1,d0
  3906.     movel d0,a6
  3907.     subl a5@(-4),a6
  3908.     movel a6,a5@(-76)
  3909.     lea a5@(-72),a0
  3910.     movel a2,d0
  3911.     movel d0,d1
  3912.     asll #2,d1
  3913.     lea a0@(0,d1:l),a6
  3914.     movel a6,a5@(-1382)
  3915. L389:
  3916.     addql #1,d3
  3917.     cmpl a5@(-1390),d3
  3918.     jcs L391
  3919.     jra L390
  3920. L391:
  3921.     movel a5@(-76),d0
  3922.     movel d0,d1
  3923.     addl d1,d1
  3924.     movel d1,d0
  3925.     movel d0,a5@(-76)
  3926.     addql #4,a5@(-1382)
  3927.     movel a5@(-1382),a0
  3928.     cmpl a0@,d0
  3929.     jhi L392
  3930.     jra L390
  3931. L392:
  3932.     movel a5@(-1382),a0
  3933.     movel a0@,d6
  3934.     subl d6,a5@(-76)
  3935.     jra L389
  3936. L390:
  3937. L388:
  3938.     moveq #1,d0
  3939.     movel d0,d1
  3940.     asll d3,d1
  3941.     movel d1,a5@(-1390)
  3942.     pea 5:w
  3943.     movel a5@(-1390),d0
  3944.     addql #1,d0
  3945.     movel d0,d5
  3946.     movel d5,d1
  3947.     addl d1,d1
  3948.     addl d0,d1
  3949.     movel d1,d0
  3950.     addl d0,d0
  3951.     movel d0,sp@-
  3952.     jbsr _AllocVec
  3953.     addqw #8,sp
  3954.     movel d0,a4
  3955.     movel a4,d0
  3956.     tstl d0
  3957.     jne L393
  3958.     tstl a5@(-84)
  3959.     jeq L394
  3960.     movel a5@(-158),sp@-
  3961.     jbsr _huft_free
  3962.     addqw #4,sp
  3963. L394:
  3964.     moveq #3,d0
  3965.     jra L344
  3966. L393:
  3967.     movel _hufts,d0
  3968.     addql #1,d0
  3969.     movel d0,a6
  3970.     addl a5@(-1390),a6
  3971.     movel a6,_hufts
  3972.     movel a5@(28),a0
  3973.     lea a4@(6),a6
  3974.     movel a6,a0@
  3975.     lea a4@(2),a0
  3976.     movel a0,a1
  3977.     movel a1,a5@(28)
  3978.     clrl a1@
  3979.     movel a5@(-84),d0
  3980.     movel d0,d1
  3981.     movel d1,d0
  3982.     asll #2,d0
  3983.     lea a5@(0,d0:l),a0
  3984.     addqw #6,a4
  3985.     movel a4,a0@(-158)
  3986.     tstl a5@(-84)
  3987.     jeq L395
  3988.     movel a5@(-84),d0
  3989.     movel d0,d1
  3990.     movel d1,d0
  3991.     asll #2,d0
  3992.     lea a5@(0,d0:l),a0
  3993.     movel d2,a0@(-1378)
  3994.     moveb a5@(-85),a5@(-93)
  3995.     moveb d3,d6
  3996.     addb #16,d6
  3997.     moveb d6,a5@(-94)
  3998.     movel a4,a5@(-92)
  3999.     movel d4,d0
  4000.     subl a5@(-88),d0
  4001.     movel d2,d3
  4002.     lsrl d0,d3
  4003.     lea a5@(-162),a0
  4004.     movel a5@(-84),d0
  4005.     movel d0,d1
  4006.     movel d1,d0
  4007.     asll #2,d0
  4008.     addl d0,a0
  4009.     movel d3,d0
  4010.     movel d0,d1
  4011.     addl d1,d1
  4012.     addl d3,d1
  4013.     movel d1,d0
  4014.     addl d0,d0
  4015.     movel a0@,a0
  4016.     movel a5@(-94),a0@(d0:l)
  4017.     movew a5@(-90),a0@(4,d0:l)
  4018. L395:
  4019.     jra L383
  4020. L384:
  4021.     movew a2,d6
  4022.     subb d4,d6
  4023.     moveb d6,a5@(-93)
  4024.     lea a5@(-1310),a0
  4025.     movel a5@(12),d0
  4026.     movel d0,d1
  4027.     movel d1,d0
  4028.     asll #2,d0
  4029.     addl d0,a0
  4030.     cmpl a3,a0
  4031.     jhi L396
  4032.     moveb #99,a5@(-94)
  4033.     jra L397
  4034. L396:
  4035.     movel a3@,a6
  4036.     cmpl a5@(16),a6
  4037.     jcc L398
  4038.     cmpl #255,a3@
  4039.     jhi L399
  4040.     moveb #16,d0
  4041.     jra L400
  4042. L399:
  4043.     moveb #15,d0
  4044. L400:
  4045.     moveb d0,a5@(-94)
  4046.     movew a3@(2),a5@(-92)
  4047.     addqw #4,a3
  4048.     jra L401
  4049. L398:
  4050.     movel a3@,d0
  4051.     subl a5@(16),d0
  4052.     movel d0,d1
  4053.     movel d1,d0
  4054.     addl d0,d0
  4055.     movel a5@(24),a0
  4056.     moveb a0@(1,d0:l),a5@(-94)
  4057.     movel a3@,d0
  4058.     subl a5@(16),d0
  4059.     movel d0,d1
  4060.     movel d1,d0
  4061.     addl d0,d0
  4062.     movel a5@(20),a0
  4063.     movew a0@(d0:l),a5@(-92)
  4064.     addqw #4,a3
  4065. L401:
  4066. L397:
  4067.     movel a2,d0
  4068.     subl d4,d0
  4069.     moveq #1,d1
  4070.     movel d1,d6
  4071.     asll d0,d6
  4072.     movel d6,d0
  4073.     movel d0,a5@(-76)
  4074.     movel d2,d3
  4075.     lsrl d4,d3
  4076. L402:
  4077.     cmpl a5@(-1390),d3
  4078.     jcs L405
  4079.     jra L403
  4080. L405:
  4081.     movel d3,d1
  4082.     movel d1,d0
  4083.     addl d0,d0
  4084.     addl d3,d0
  4085.     movel d0,d1
  4086.     addl d1,d1
  4087.     movel a5@(-94),a4@(d1:l)
  4088.     movew a5@(-90),a4@(4,d1:l)
  4089. L404:
  4090.     addl a5@(-76),d3
  4091.     jra L402
  4092. L403:
  4093.     nop
  4094.     movel a2,d0
  4095.     subql #1,d0
  4096.     moveq #1,d1
  4097.     movel d1,d3
  4098.     asll d0,d3
  4099. L406:
  4100.     movel d2,d0
  4101.     andl d3,d0
  4102.     tstl d0
  4103.     jne L409
  4104.     jra L407
  4105. L409:
  4106.     eorl d3,d2
  4107. L408:
  4108.     lsrl #1,d3
  4109.     jra L406
  4110. L407:
  4111.     eorl d3,d2
  4112. L410:
  4113.     moveq #1,d1
  4114.     movel d1,d0
  4115.     asll d4,d0
  4116.     movel d0,d1
  4117.     subql #1,d1
  4118.     movel d2,d0
  4119.     andl d1,d0
  4120.     movel a5@(-84),d1
  4121.     movel d1,d5
  4122.     movel d5,d1
  4123.     asll #2,d1
  4124.     lea a5@(0,d1:l),a0
  4125.     cmpl a0@(-1378),d0
  4126.     jne L412
  4127.     jra L411
  4128. L412:
  4129.     subql #1,a5@(-84)
  4130.     subl a5@(-88),d4
  4131.     jra L410
  4132. L411:
  4133.     jra L380
  4134. L381:
  4135. L378:
  4136.     addqw #1,a2
  4137.     jra L376
  4138. L377:
  4139.     clrl d0
  4140.     tstl a5@(-1386)
  4141.     jeq L413
  4142.     moveq #1,d6
  4143.     cmpl a5@(-80),d6
  4144.     jeq L413
  4145.     moveq #1,d0
  4146. L413:
  4147.     jra L344
  4148. L344:
  4149.     moveml a5@(-1428),#0x5c7c
  4150.     unlk a5
  4151.     rts
  4152.     .even
  4153. _huft_free:
  4154.     link a5,#0
  4155.     movel a2,sp@-
  4156.     movel d2,sp@-
  4157.     movel a5@(8),a2
  4158. L415:
  4159.     tstl a2
  4160.     jne L417
  4161.     jra L416
  4162. L417:
  4163.     subqw #6,a2
  4164.     movel a2@(2),d2
  4165.     movel a2,sp@-
  4166.     jbsr _FreeVec
  4167.     addqw #4,sp
  4168.     movel d2,a2
  4169.     jra L415
  4170. L416:
  4171.     clrl d0
  4172.     jra L414
  4173. L414:
  4174.     movel a5@(-8),d2
  4175.     movel a5@(-4),a2
  4176.     unlk a5
  4177.     rts
  4178.     .even
  4179. _inflate_codes:
  4180.     link a5,#-24
  4181.     moveml #0x3e00,sp@-
  4182.     movel _bb,d3
  4183.     movel _bk,d4
  4184.     movel _outcnt,a5@(-12)
  4185.     movel a5@(16),d0
  4186.     movel d0,d1
  4187.     movel d1,d0
  4188.     addl d0,d0
  4189.     lea _mask_bits,a0
  4190.     clrl d1
  4191.     movew a0@(d0:l),d1
  4192.     movel d1,a5@(-20)
  4193.     movel a5@(20),d0
  4194.     movel d0,d1
  4195.     movel d1,d0
  4196.     addl d0,d0
  4197.     lea _mask_bits,a0
  4198.     clrl d1
  4199.     movew a0@(d0:l),d1
  4200.     movel d1,a5@(-24)
  4201. L419:
  4202. L422:
  4203.     cmpl a5@(16),d4
  4204.     jcs L424
  4205.     jra L423
  4206. L424:
  4207.     movel _inptr,d6
  4208.     cmpl _insize,d6
  4209.     jcc L425
  4210.     movel _inbuf,a0
  4211.     addl _inptr,a0
  4212.     clrl d0
  4213.     moveb a0@,d0
  4214.     asll d4,d0
  4215.     orl d0,d3
  4216.     addql #1,_inptr
  4217.     jra L426
  4218. L425:
  4219.     jbsr _fill_inbuf
  4220.     clrl d1
  4221.     moveb d0,d1
  4222.     movel d1,d0
  4223.     asll d4,d0
  4224.     orl d0,d3
  4225. L426:
  4226.     addql #8,d4
  4227.     jra L422
  4228. L423:
  4229.     movel d3,d0
  4230.     andl a5@(-20),d0
  4231.     movel d0,d5
  4232.     movel d5,d1
  4233.     addl d1,d1
  4234.     addl d0,d1
  4235.     movel d1,d0
  4236.     addl d0,d0
  4237.     movel d0,d1
  4238.     addl a5@(8),d1
  4239.     movel d1,a0
  4240.     movel a0,a5@(-16)
  4241.     clrl d2
  4242.     moveb a0@,d2
  4243.     movel d2,d0
  4244.     moveq #16,d6
  4245.     cmpl d0,d6
  4246.     jcc L427
  4247. L428:
  4248.     moveq #99,d6
  4249.     cmpl d2,d6
  4250.     jne L431
  4251.     moveq #1,d0
  4252.     jra L418
  4253. L431:
  4254.     movel a5@(-16),a0
  4255.     clrl d0
  4256.     moveb a0@(1),d0
  4257.     lsrl d0,d3
  4258.     movel a5@(-16),a0
  4259.     clrl d0
  4260.     moveb a0@(1),d0
  4261.     subl d0,d4
  4262.     moveq #-16,d6
  4263.     addl d6,d2
  4264. L432:
  4265.     cmpl d4,d2
  4266.     jhi L434
  4267.     jra L433
  4268. L434:
  4269.     movel _inptr,d6
  4270.     cmpl _insize,d6
  4271.     jcc L435
  4272.     movel _inbuf,a0
  4273.     addl _inptr,a0
  4274.     clrl d0
  4275.     moveb a0@,d0
  4276.     asll d4,d0
  4277.     orl d0,d3
  4278.     addql #1,_inptr
  4279.     jra L436
  4280. L435:
  4281.     jbsr _fill_inbuf
  4282.     clrl d1
  4283.     moveb d0,d1
  4284.     movel d1,d0
  4285.     asll d4,d0
  4286.     orl d0,d3
  4287. L436:
  4288.     addql #8,d4
  4289.     jra L432
  4290. L433:
  4291. L430:
  4292.     movel a5@(-16),a0
  4293.     movel d2,d1
  4294.     movel d1,d0
  4295.     addl d0,d0
  4296.     lea _mask_bits,a1
  4297.     clrl d1
  4298.     movew a1@(d0:l),d1
  4299.     movel d3,d0
  4300.     andl d1,d0
  4301.     movel d0,d5
  4302.     movel d5,d1
  4303.     addl d1,d1
  4304.     addl d0,d1
  4305.     movel d1,d0
  4306.     addl d0,d0
  4307.     movel d0,d1
  4308.     addl a0@(2),d1
  4309.     movel d1,a0
  4310.     movel a0,a5@(-16)
  4311.     clrl d2
  4312.     moveb a0@,d2
  4313.     movel d2,d0
  4314.     moveq #16,d6
  4315.     cmpl d0,d6
  4316.     jcs L437
  4317.     jra L429
  4318. L437:
  4319.     jra L428
  4320. L429:
  4321. L427:
  4322.     movel a5@(-16),a0
  4323.     clrl d0
  4324.     moveb a0@(1),d0
  4325.     lsrl d0,d3
  4326.     movel a5@(-16),a0
  4327.     clrl d0
  4328.     moveb a0@(1),d0
  4329.     subl d0,d4
  4330.     moveq #16,d6
  4331.     cmpl d2,d6
  4332.     jne L438
  4333.     movel _window,a0
  4334.     addl a5@(-12),a0
  4335.     movel a5@(-16),a1
  4336.     moveb a1@(3),a0@
  4337.     addql #1,a5@(-12)
  4338.     cmpl #32768,a5@(-12)
  4339.     jne L439
  4340.     movel a5@(-12),_outcnt
  4341.     jbsr _flush_window
  4342.     clrl a5@(-12)
  4343. L439:
  4344.     jra L440
  4345. L438:
  4346.     moveq #15,d6
  4347.     cmpl d2,d6
  4348.     jne L441
  4349.     jra L420
  4350. L441:
  4351. L442:
  4352.     cmpl d4,d2
  4353.     jhi L444
  4354.     jra L443
  4355. L444:
  4356.     movel _inptr,d6
  4357.     cmpl _insize,d6
  4358.     jcc L445
  4359.     movel _inbuf,a0
  4360.     addl _inptr,a0
  4361.     clrl d0
  4362.     moveb a0@,d0
  4363.     asll d4,d0
  4364.     orl d0,d3
  4365.     addql #1,_inptr
  4366.     jra L446
  4367. L445:
  4368.     jbsr _fill_inbuf
  4369.     clrl d1
  4370.     moveb d0,d1
  4371.     movel d1,d0
  4372.     asll d4,d0
  4373.     orl d0,d3
  4374. L446:
  4375.     addql #8,d4
  4376.     jra L442
  4377. L443:
  4378.     movel a5@(-16),a0
  4379.     clrl d0
  4380.     movew a0@(2),d0
  4381.     movel d2,d5
  4382.     movel d5,d1
  4383.     addl d1,d1
  4384.     lea _mask_bits,a0
  4385.     clrl d5
  4386.     movew a0@(d1:l),d5
  4387.     movel d3,d1
  4388.     andl d5,d1
  4389.     movel d0,d6
  4390.     addl d1,d6
  4391.     movel d6,a5@(-4)
  4392.     lsrl d2,d3
  4393.     subl d2,d4
  4394. L447:
  4395.     cmpl a5@(20),d4
  4396.     jcs L449
  4397.     jra L448
  4398. L449:
  4399.     movel _inptr,d6
  4400.     cmpl _insize,d6
  4401.     jcc L450
  4402.     movel _inbuf,a0
  4403.     addl _inptr,a0
  4404.     clrl d0
  4405.     moveb a0@,d0
  4406.     asll d4,d0
  4407.     orl d0,d3
  4408.     addql #1,_inptr
  4409.     jra L451
  4410. L450:
  4411.     jbsr _fill_inbuf
  4412.     clrl d1
  4413.     moveb d0,d1
  4414.     movel d1,d0
  4415.     asll d4,d0
  4416.     orl d0,d3
  4417. L451:
  4418.     addql #8,d4
  4419.     jra L447
  4420. L448:
  4421.     movel d3,d0
  4422.     andl a5@(-24),d0
  4423.     movel d0,d5
  4424.     movel d5,d1
  4425.     addl d1,d1
  4426.     addl d0,d1
  4427.     movel d1,d0
  4428.     addl d0,d0
  4429.     movel d0,d1
  4430.     addl a5@(12),d1
  4431.     movel d1,a0
  4432.     movel a0,a5@(-16)
  4433.     clrl d2
  4434.     moveb a0@,d2
  4435.     movel d2,d0
  4436.     moveq #16,d6
  4437.     cmpl d0,d6
  4438.     jcc L452
  4439. L453:
  4440.     moveq #99,d6
  4441.     cmpl d2,d6
  4442.     jne L456
  4443.     moveq #1,d0
  4444.     jra L418
  4445. L456:
  4446.     movel a5@(-16),a0
  4447.     clrl d0
  4448.     moveb a0@(1),d0
  4449.     lsrl d0,d3
  4450.     movel a5@(-16),a0
  4451.     clrl d0
  4452.     moveb a0@(1),d0
  4453.     subl d0,d4
  4454.     moveq #-16,d6
  4455.     addl d6,d2
  4456. L457:
  4457.     cmpl d4,d2
  4458.     jhi L459
  4459.     jra L458
  4460. L459:
  4461.     movel _inptr,d6
  4462.     cmpl _insize,d6
  4463.     jcc L460
  4464.     movel _inbuf,a0
  4465.     addl _inptr,a0
  4466.     clrl d0
  4467.     moveb a0@,d0
  4468.     asll d4,d0
  4469.     orl d0,d3
  4470.     addql #1,_inptr
  4471.     jra L461
  4472. L460:
  4473.     jbsr _fill_inbuf
  4474.     clrl d1
  4475.     moveb d0,d1
  4476.     movel d1,d0
  4477.     asll d4,d0
  4478.     orl d0,d3
  4479. L461:
  4480.     addql #8,d4
  4481.     jra L457
  4482. L458:
  4483. L455:
  4484.     movel a5@(-16),a0
  4485.     movel d2,d1
  4486.     movel d1,d0
  4487.     addl d0,d0
  4488.     lea _mask_bits,a1
  4489.     clrl d1
  4490.     movew a1@(d0:l),d1
  4491.     movel d3,d0
  4492.     andl d1,d0
  4493.     movel d0,d5
  4494.     movel d5,d1
  4495.     addl d1,d1
  4496.     addl d0,d1
  4497.     movel d1,d0
  4498.     addl d0,d0
  4499.     movel d0,d1
  4500.     addl a0@(2),d1
  4501.     movel d1,a0
  4502.     movel a0,a5@(-16)
  4503.     clrl d2
  4504.     moveb a0@,d2
  4505.     movel d2,d0
  4506.     moveq #16,d6
  4507.     cmpl d0,d6
  4508.     jcs L462
  4509.     jra L454
  4510. L462:
  4511.     jra L453
  4512. L454:
  4513. L452:
  4514.     movel a5@(-16),a0
  4515.     clrl d0
  4516.     moveb a0@(1),d0
  4517.     lsrl d0,d3
  4518.     movel a5@(-16),a0
  4519.     clrl d0
  4520.     moveb a0@(1),d0
  4521.     subl d0,d4
  4522. L463:
  4523.     cmpl d4,d2
  4524.     jhi L465
  4525.     jra L464
  4526. L465:
  4527.     movel _inptr,d6
  4528.     cmpl _insize,d6
  4529.     jcc L466
  4530.     movel _inbuf,a0
  4531.     addl _inptr,a0
  4532.     clrl d0
  4533.     moveb a0@,d0
  4534.     asll d4,d0
  4535.     orl d0,d3
  4536.     addql #1,_inptr
  4537.     jra L467
  4538. L466:
  4539.     jbsr _fill_inbuf
  4540.     clrl d1
  4541.     moveb d0,d1
  4542.     movel d1,d0
  4543.     asll d4,d0
  4544.     orl d0,d3
  4545. L467:
  4546.     addql #8,d4
  4547.     jra L463
  4548. L464:
  4549.     movel a5@(-16),a0
  4550.     clrl d0
  4551.     movew a0@(2),d0
  4552.     movel a5@(-12),d6
  4553.     subl d0,d6
  4554.     movel d6,d0
  4555.     movel d2,d5
  4556.     movel d5,d1
  4557.     addl d1,d1
  4558.     lea _mask_bits,a0
  4559.     clrl d5
  4560.     movew a0@(d1:l),d5
  4561.     movel d3,d1
  4562.     andl d5,d1
  4563.     movel d0,d6
  4564.     subl d1,d6
  4565.     movel d6,a5@(-8)
  4566.     lsrl d2,d3
  4567.     subl d2,d4
  4568. L468:
  4569.     movel a5@(-8),d0
  4570.     andl #32767,d0
  4571.     movel d0,d1
  4572.     movel d1,a5@(-8)
  4573.     cmpl a5@(-12),d1
  4574.     jls L473
  4575.     movel #32768,d2
  4576.     subl a5@(-8),d2
  4577.     jra L474
  4578. L473:
  4579.     movel #32768,d2
  4580.     subl a5@(-12),d2
  4581. L474:
  4582.     movel d2,d0
  4583.     cmpl a5@(-4),d0
  4584.     jls L471
  4585.     movel a5@(-4),d0
  4586.     jra L472
  4587. L471:
  4588.     movel d2,d0
  4589. L472:
  4590.     movel d0,d2
  4591.     subl d0,a5@(-4)
  4592.     movel a5@(-12),d0
  4593.     subl a5@(-8),d0
  4594.     cmpl d0,d2
  4595.     jhi L475
  4596.     movel d2,sp@-
  4597.     movel _window,d0
  4598.     addl a5@(-8),d0
  4599.     movel d0,sp@-
  4600.     movel _window,d0
  4601.     addl a5@(-12),d0
  4602.     movel d0,sp@-
  4603.     jbsr _memcpy
  4604.     addqw #8,sp
  4605.     addqw #4,sp
  4606.     addl d2,a5@(-12)
  4607.     addl d2,a5@(-8)
  4608.     jra L476
  4609. L475:
  4610.     nop
  4611. L477:
  4612.     movel _window,a0
  4613.     addl a5@(-12),a0
  4614.     movel _window,a1
  4615.     addl a5@(-8),a1
  4616.     moveb a1@,a0@
  4617.     addql #1,a5@(-8)
  4618.     addql #1,a5@(-12)
  4619. L479:
  4620.     subql #1,d2
  4621.     tstl d2
  4622.     jne L480
  4623.     jra L478
  4624. L480:
  4625.     jra L477
  4626. L478:
  4627. L476:
  4628.     cmpl #32768,a5@(-12)
  4629.     jne L481
  4630.     movel a5@(-12),_outcnt
  4631.     jbsr _flush_window
  4632.     clrl a5@(-12)
  4633. L481:
  4634. L470:
  4635.     tstl a5@(-4)
  4636.     jne L482
  4637.     jra L469
  4638. L482:
  4639.     jra L468
  4640. L469:
  4641. L440:
  4642. L421:
  4643.     jra L419
  4644. L420:
  4645.     movel a5@(-12),_outcnt
  4646.     movel d3,_bb
  4647.     movel d4,_bk
  4648.     clrl d0
  4649.     jra L418
  4650. L418:
  4651.     moveml a5@(-44),#0x7c
  4652.     unlk a5
  4653.     rts
  4654.     .even
  4655. _inflate_stored:
  4656.     link a5,#-8
  4657.     moveml #0x3800,sp@-
  4658.     movel _bb,d2
  4659.     movel _bk,d3
  4660.     movel _outcnt,a5@(-8)
  4661.     moveq #7,d4
  4662.     andl d3,d4
  4663.     movel d4,a5@(-4)
  4664.     movel a5@(-4),d4
  4665.     lsrl d4,d2
  4666.     subl a5@(-4),d3
  4667. L484:
  4668.     moveq #15,d4
  4669.     cmpl d3,d4
  4670.     jcc L486
  4671.     jra L485
  4672. L486:
  4673.     movel _inptr,d4
  4674.     cmpl _insize,d4
  4675.     jcc L487
  4676.     movel _inbuf,a0
  4677.     addl _inptr,a0
  4678.     clrl d0
  4679.     moveb a0@,d0
  4680.     asll d3,d0
  4681.     orl d0,d2
  4682.     addql #1,_inptr
  4683.     jra L488
  4684. L487:
  4685.     jbsr _fill_inbuf
  4686.     clrl d1
  4687.     moveb d0,d1
  4688.     movel d1,d0
  4689.     asll d3,d0
  4690.     orl d0,d2
  4691. L488:
  4692.     addql #8,d3
  4693.     jra L484
  4694. L485:
  4695.     movel d2,d4
  4696.     andl #65535,d4
  4697.     movel d4,a5@(-4)
  4698.     clrw d2
  4699.     swap d2
  4700.     moveq #-16,d4
  4701.     addl d4,d3
  4702. L489:
  4703.     moveq #15,d4
  4704.     cmpl d3,d4
  4705.     jcc L491
  4706.     jra L490
  4707. L491:
  4708.     movel _inptr,d4
  4709.     cmpl _insize,d4
  4710.     jcc L492
  4711.     movel _inbuf,a0
  4712.     addl _inptr,a0
  4713.     clrl d0
  4714.     moveb a0@,d0
  4715.     asll d3,d0
  4716.     orl d0,d2
  4717.     addql #1,_inptr
  4718.     jra L493
  4719. L492:
  4720.     jbsr _fill_inbuf
  4721.     clrl d1
  4722.     moveb d0,d1
  4723.     movel d1,d0
  4724.     asll d3,d0
  4725.     orl d0,d2
  4726. L493:
  4727.     addql #8,d3
  4728.     jra L489
  4729. L490:
  4730.     movel d2,d0
  4731.     notl d0
  4732.     movel d0,d1
  4733.     andl #65535,d1
  4734.     cmpl a5@(-4),d1
  4735.     jeq L494
  4736.     moveq #1,d0
  4737.     jra L483
  4738. L494:
  4739.     clrw d2
  4740.     swap d2
  4741.     moveq #-16,d4
  4742.     addl d4,d3
  4743. L495:
  4744.     subql #1,a5@(-4)
  4745.     moveq #-1,d4
  4746.     cmpl a5@(-4),d4
  4747.     jne L497
  4748.     jra L496
  4749. L497:
  4750. L498:
  4751.     moveq #7,d4
  4752.     cmpl d3,d4
  4753.     jcc L500
  4754.     jra L499
  4755. L500:
  4756.     movel _inptr,d4
  4757.     cmpl _insize,d4
  4758.     jcc L501
  4759.     movel _inbuf,a0
  4760.     addl _inptr,a0
  4761.     clrl d0
  4762.     moveb a0@,d0
  4763.     asll d3,d0
  4764.     orl d0,d2
  4765.     addql #1,_inptr
  4766.     jra L502
  4767. L501:
  4768.     jbsr _fill_inbuf
  4769.     clrl d1
  4770.     moveb d0,d1
  4771.     movel d1,d0
  4772.     asll d3,d0
  4773.     orl d0,d2
  4774. L502:
  4775.     addql #8,d3
  4776.     jra L498
  4777. L499:
  4778.     movel _window,a0
  4779.     addl a5@(-8),a0
  4780.     moveb d2,a0@
  4781.     addql #1,a5@(-8)
  4782.     cmpl #32768,a5@(-8)
  4783.     jne L503
  4784.     movel a5@(-8),_outcnt
  4785.     jbsr _flush_window
  4786.     clrl a5@(-8)
  4787. L503:
  4788.     lsrl #8,d2
  4789.     subql #8,d3
  4790.     jra L495
  4791. L496:
  4792.     movel a5@(-8),_outcnt
  4793.     movel d2,_bb
  4794.     movel d3,_bk
  4795.     clrl d0
  4796.     jra L483
  4797. L483:
  4798.     moveml a5@(-20),#0x1c
  4799.     unlk a5
  4800.     rts
  4801.     .even
  4802. _inflate_fixed:
  4803.     link a5,#-1172
  4804.     movel d2,sp@-
  4805.     nop
  4806.     clrl a5@(-4)
  4807. L505:
  4808.     cmpl #143,a5@(-4)
  4809.     jle L508
  4810.     jra L506
  4811. L508:
  4812.     movel a5@(-4),d0
  4813.     movel d0,d1
  4814.     movel d1,d0
  4815.     asll #2,d0
  4816.     lea a5@(0,d0:l),a0
  4817.     moveq #8,d2
  4818.     movel d2,a0@(-1172)
  4819. L507:
  4820.     addql #1,a5@(-4)
  4821.     jra L505
  4822. L506:
  4823.     nop
  4824. L509:
  4825.     cmpl #255,a5@(-4)
  4826.     jle L512
  4827.     jra L510
  4828. L512:
  4829.     movel a5@(-4),d0
  4830.     movel d0,d1
  4831.     movel d1,d0
  4832.     asll #2,d0
  4833.     lea a5@(0,d0:l),a0
  4834.     moveq #9,d2
  4835.     movel d2,a0@(-1172)
  4836. L511:
  4837.     addql #1,a5@(-4)
  4838.     jra L509
  4839. L510:
  4840.     nop
  4841. L513:
  4842.     cmpl #279,a5@(-4)
  4843.     jle L516
  4844.     jra L514
  4845. L516:
  4846.     movel a5@(-4),d0
  4847.     movel d0,d1
  4848.     movel d1,d0
  4849.     asll #2,d0
  4850.     lea a5@(0,d0:l),a0
  4851.     moveq #7,d2
  4852.     movel d2,a0@(-1172)
  4853. L515:
  4854.     addql #1,a5@(-4)
  4855.     jra L513
  4856. L514:
  4857.     nop
  4858. L517:
  4859.     cmpl #287,a5@(-4)
  4860.     jle L520
  4861.     jra L518
  4862. L520:
  4863.     movel a5@(-4),d0
  4864.     movel d0,d1
  4865.     movel d1,d0
  4866.     asll #2,d0
  4867.     lea a5@(0,d0:l),a0
  4868.     moveq #8,d2
  4869.     movel d2,a0@(-1172)
  4870. L519:
  4871.     addql #1,a5@(-4)
  4872.     jra L517
  4873. L518:
  4874.     moveq #7,d2
  4875.     movel d2,a5@(-16)
  4876.     lea a5@(-16),a0
  4877.     movel a0,sp@-
  4878.     lea a5@(-8),a0
  4879.     movel a0,sp@-
  4880.     pea _cplext
  4881.     pea _cplens
  4882.     pea 257:w
  4883.     pea 288:w
  4884.     lea a5@(-1172),a0
  4885.     movel a0,sp@-
  4886.     jbsr _huft_build
  4887.     addw #28,sp
  4888.     movel d0,a5@(-4)
  4889.     tstl a5@(-4)
  4890.     jeq L521
  4891.     movel a5@(-4),d0
  4892.     jra L504
  4893. L521:
  4894.     nop
  4895.     clrl a5@(-4)
  4896. L522:
  4897.     moveq #29,d2
  4898.     cmpl a5@(-4),d2
  4899.     jge L525
  4900.     jra L523
  4901. L525:
  4902.     movel a5@(-4),d0
  4903.     movel d0,d1
  4904.     movel d1,d0
  4905.     asll #2,d0
  4906.     lea a5@(0,d0:l),a0
  4907.     moveq #5,d2
  4908.     movel d2,a0@(-1172)
  4909. L524:
  4910.     addql #1,a5@(-4)
  4911.     jra L522
  4912. L523:
  4913.     moveq #5,d2
  4914.     movel d2,a5@(-20)
  4915.     lea a5@(-20),a0
  4916.     movel a0,sp@-
  4917.     lea a5@(-12),a0
  4918.     movel a0,sp@-
  4919.     pea _cpdext
  4920.     pea _cpdist
  4921.     clrl sp@-
  4922.     pea 30:w
  4923.     lea a5@(-1172),a0
  4924.     movel a0,sp@-
  4925.     jbsr _huft_build
  4926.     addw #28,sp
  4927.     movel d0,a5@(-4)
  4928.     moveq #1,d2
  4929.     cmpl a5@(-4),d2
  4930.     jge L526
  4931.     movel a5@(-8),sp@-
  4932.     jbsr _huft_free
  4933.     addqw #4,sp
  4934.     movel a5@(-4),d0
  4935.     jra L504
  4936. L526:
  4937.     movel a5@(-20),sp@-
  4938.     movel a5@(-16),sp@-
  4939.     movel a5@(-12),sp@-
  4940.     movel a5@(-8),sp@-
  4941.     jbsr _inflate_codes
  4942.     addqw #8,sp
  4943.     addqw #8,sp
  4944.     tstl d0
  4945.     jeq L527
  4946.     moveq #1,d0
  4947.     jra L504
  4948. L527:
  4949.     movel a5@(-8),sp@-
  4950.     jbsr _huft_free
  4951.     addqw #4,sp
  4952.     movel a5@(-12),sp@-
  4953.     jbsr _huft_free
  4954.     addqw #4,sp
  4955.     clrl d0
  4956.     jra L504
  4957. L504:
  4958.     movel a5@(-1176),d2
  4959.     unlk a5
  4960.     rts
  4961. LC134:
  4962.     .ascii " incomplete literal tree\12\0"
  4963. LC135:
  4964.     .ascii " incomplete distance tree\12\0"
  4965.     .even
  4966. _inflate_dynamic:
  4967.     link a5,#-1312
  4968.     moveml #0x3c00,sp@-
  4969.     movel _bb,d2
  4970.     movel _bk,d3
  4971. L529:
  4972.     moveq #4,d5
  4973.     cmpl d3,d5
  4974.     jcc L531
  4975.     jra L530
  4976. L531:
  4977.     movel _inptr,d5
  4978.     cmpl _insize,d5
  4979.     jcc L532
  4980.     movel _inbuf,a0
  4981.     addl _inptr,a0
  4982.     clrl d0
  4983.     moveb a0@,d0
  4984.     asll d3,d0
  4985.     orl d0,d2
  4986.     addql #1,_inptr
  4987.     jra L533
  4988. L532:
  4989.     jbsr _fill_inbuf
  4990.     clrl d1
  4991.     moveb d0,d1
  4992.     movel d1,d0
  4993.     asll d3,d0
  4994.     orl d0,d2
  4995. L533:
  4996.     addql #8,d3
  4997.     jra L529
  4998. L530:
  4999.     moveq #31,d0
  5000.     andl d2,d0
  5001.     movel d0,d5
  5002.     addl #257,d5
  5003.     movel d5,a5@(-44)
  5004.     lsrl #5,d2
  5005.     subql #5,d3
  5006. L534:
  5007.     moveq #4,d5
  5008.     cmpl d3,d5
  5009.     jcc L536
  5010.     jra L535
  5011. L536:
  5012.     movel _inptr,d5
  5013.     cmpl _insize,d5
  5014.     jcc L537
  5015.     movel _inbuf,a0
  5016.     addl _inptr,a0
  5017.     clrl d0
  5018.     moveb a0@,d0
  5019.     asll d3,d0
  5020.     orl d0,d2
  5021.     addql #1,_inptr
  5022.     jra L538
  5023. L537:
  5024.     jbsr _fill_inbuf
  5025.     clrl d1
  5026.     moveb d0,d1
  5027.     movel d1,d0
  5028.     asll d3,d0
  5029.     orl d0,d2
  5030. L538:
  5031.     addql #8,d3
  5032.     jra L534
  5033. L535:
  5034.     moveq #31,d0
  5035.     andl d2,d0
  5036.     movel d0,d5
  5037.     addql #1,d5
  5038.     movel d5,a5@(-48)
  5039.     lsrl #5,d2
  5040.     subql #5,d3
  5041. L539:
  5042.     moveq #3,d5
  5043.     cmpl d3,d5
  5044.     jcc L541
  5045.     jra L540
  5046. L541:
  5047.     movel _inptr,d5
  5048.     cmpl _insize,d5
  5049.     jcc L542
  5050.     movel _inbuf,a0
  5051.     addl _inptr,a0
  5052.     clrl d0
  5053.     moveb a0@,d0
  5054.     asll d3,d0
  5055.     orl d0,d2
  5056.     addql #1,_inptr
  5057.     jra L543
  5058. L542:
  5059.     jbsr _fill_inbuf
  5060.     clrl d1
  5061.     moveb d0,d1
  5062.     movel d1,d0
  5063.     asll d3,d0
  5064.     orl d0,d2
  5065. L543:
  5066.     addql #8,d3
  5067.     jra L539
  5068. L540:
  5069.     moveq #15,d0
  5070.     andl d2,d0
  5071.     movel d0,d5
  5072.     addql #4,d5
  5073.     movel d5,a5@(-40)
  5074.     lsrl #4,d2
  5075.     subql #4,d3
  5076.     cmpl #286,a5@(-44)
  5077.     jhi L545
  5078.     moveq #30,d5
  5079.     cmpl a5@(-48),d5
  5080.     jcs L545
  5081.     jra L544
  5082. L545:
  5083.     moveq #1,d0
  5084.     jra L528
  5085. L544:
  5086.     nop
  5087.     clrl a5@(-8)
  5088. L546:
  5089.     movel a5@(-8),d5
  5090.     cmpl a5@(-40),d5
  5091.     jcs L549
  5092.     jra L547
  5093. L549:
  5094. L550:
  5095.     moveq #2,d5
  5096.     cmpl d3,d5
  5097.     jcc L552
  5098.     jra L551
  5099. L552:
  5100.     movel _inptr,d5
  5101.     cmpl _insize,d5
  5102.     jcc L553
  5103.     movel _inbuf,a0
  5104.     addl _inptr,a0
  5105.     clrl d0
  5106.     moveb a0@,d0
  5107.     asll d3,d0
  5108.     orl d0,d2
  5109.     addql #1,_inptr
  5110.     jra L554
  5111. L553:
  5112.     jbsr _fill_inbuf
  5113.     clrl d1
  5114.     moveb d0,d1
  5115.     movel d1,d0
  5116.     asll d3,d0
  5117.     orl d0,d2
  5118. L554:
  5119.     addql #8,d3
  5120.     jra L550
  5121. L551:
  5122.     movel a5@(-8),d0
  5123.     movel d0,d1
  5124.     movel d1,d0
  5125.     asll #2,d0
  5126.     lea _border,a0
  5127.     movel a0@(d0:l),d0
  5128.     movel d0,d1
  5129.     movel d1,d0
  5130.     asll #2,d0
  5131.     lea a5@(0,d0:l),a0
  5132.     moveq #7,d5
  5133.     andl d2,d5
  5134.     movel d5,a0@(-1312)
  5135.     lsrl #3,d2
  5136.     subql #3,d3
  5137. L548:
  5138.     addql #1,a5@(-8)
  5139.     jra L546
  5140. L547:
  5141.     nop
  5142. L555:
  5143.     moveq #18,d5
  5144.     cmpl a5@(-8),d5
  5145.     jcc L558
  5146.     jra L556
  5147. L558:
  5148.     movel a5@(-8),d0
  5149.     movel d0,d1
  5150.     movel d1,d0
  5151.     asll #2,d0
  5152.     lea _border,a0
  5153.     movel a0@(d0:l),d0
  5154.     movel d0,d1
  5155.     movel d1,d0
  5156.     asll #2,d0
  5157.     lea a5@(0,d0:l),a0
  5158.     clrl a0@(-1312)
  5159. L557:
  5160.     addql #1,a5@(-8)
  5161.     jra L555
  5162. L556:
  5163.     moveq #7,d5
  5164.     movel d5,a5@(-32)
  5165.     lea a5@(-32),a0
  5166.     movel a0,sp@-
  5167.     lea a5@(-24),a0
  5168.     movel a0,sp@-
  5169.     clrl sp@-
  5170.     clrl sp@-
  5171.     pea 19:w
  5172.     pea 19:w
  5173.     lea a5@(-1312),a0
  5174.     movel a0,sp@-
  5175.     jbsr _huft_build
  5176.     addw #28,sp
  5177.     movel d0,a5@(-4)
  5178.     tstl a5@(-4)
  5179.     jeq L559
  5180.     moveq #1,d5
  5181.     cmpl a5@(-4),d5
  5182.     jne L560
  5183.     movel a5@(-24),sp@-
  5184.     jbsr _huft_free
  5185.     addqw #4,sp
  5186. L560:
  5187.     movel a5@(-4),d0
  5188.     jra L528
  5189. L559:
  5190.     movel a5@(-44),d5
  5191.     addl a5@(-48),d5
  5192.     movel d5,a5@(-20)
  5193.     movel a5@(-32),d0
  5194.     movel d0,d1
  5195.     movel d1,d0
  5196.     addl d0,d0
  5197.     lea _mask_bits,a0
  5198.     clrl d1
  5199.     movew a0@(d0:l),d1
  5200.     movel d1,a5@(-16)
  5201.     clrl a5@(-12)
  5202.     clrl a5@(-4)
  5203. L561:
  5204.     movel a5@(-4),d5
  5205.     cmpl a5@(-20),d5
  5206.     jcs L563
  5207.     jra L562
  5208. L563:
  5209. L564:
  5210.     cmpl a5@(-32),d3
  5211.     jcs L566
  5212.     jra L565
  5213. L566:
  5214.     movel _inptr,d5
  5215.     cmpl _insize,d5
  5216.     jcc L567
  5217.     movel _inbuf,a0
  5218.     addl _inptr,a0
  5219.     clrl d0
  5220.     moveb a0@,d0
  5221.     asll d3,d0
  5222.     orl d0,d2
  5223.     addql #1,_inptr
  5224.     jra L568
  5225. L567:
  5226.     jbsr _fill_inbuf
  5227.     clrl d1
  5228.     moveb d0,d1
  5229.     movel d1,d0
  5230.     asll d3,d0
  5231.     orl d0,d2
  5232. L568:
  5233.     addql #8,d3
  5234.     jra L564
  5235. L565:
  5236.     movel d2,d0
  5237.     andl a5@(-16),d0
  5238.     movel d0,d4
  5239.     movel d4,d1
  5240.     addl d1,d1
  5241.     addl d0,d1
  5242.     movel d1,d0
  5243.     addl d0,d0
  5244.     movel d0,d1
  5245.     addl a5@(-24),d1
  5246.     movel d1,a0
  5247.     movel a0,a5@(-28)
  5248.     clrl d0
  5249.     moveb a0@(1),d0
  5250.     movel d0,a5@(-8)
  5251.     movel a5@(-8),d5
  5252.     lsrl d5,d2
  5253.     subl a5@(-8),d3
  5254.     movel a5@(-28),a0
  5255.     clrl d0
  5256.     movew a0@(2),d0
  5257.     movel d0,a5@(-8)
  5258.     moveq #15,d5
  5259.     cmpl a5@(-8),d5
  5260.     jcs L569
  5261.     movel a5@(-4),d0
  5262.     movel d0,d1
  5263.     movel d1,d0
  5264.     asll #2,d0
  5265.     lea a5@(0,d0:l),a0
  5266.     movel a5@(-8),d0
  5267.     movel d0,a5@(-12)
  5268.     movel d0,a0@(-1312)
  5269.     addql #1,a5@(-4)
  5270.     jra L570
  5271. L569:
  5272.     moveq #16,d5
  5273.     cmpl a5@(-8),d5
  5274.     jne L571
  5275. L572:
  5276.     moveq #1,d5
  5277.     cmpl d3,d5
  5278.     jcc L574
  5279.     jra L573
  5280. L574:
  5281.     movel _inptr,d5
  5282.     cmpl _insize,d5
  5283.     jcc L575
  5284.     movel _inbuf,a0
  5285.     addl _inptr,a0
  5286.     clrl d0
  5287.     moveb a0@,d0
  5288.     asll d3,d0
  5289.     orl d0,d2
  5290.     addql #1,_inptr
  5291.     jra L576
  5292. L575:
  5293.     jbsr _fill_inbuf
  5294.     clrl d1
  5295.     moveb d0,d1
  5296.     movel d1,d0
  5297.     asll d3,d0
  5298.     orl d0,d2
  5299. L576:
  5300.     addql #8,d3
  5301.     jra L572
  5302. L573:
  5303.     moveq #3,d0
  5304.     andl d2,d0
  5305.     movel d0,d5
  5306.     addql #3,d5
  5307.     movel d5,a5@(-8)
  5308.     lsrl #2,d2
  5309.     subql #2,d3
  5310.     movel a5@(-4),d0
  5311.     addl a5@(-8),d0
  5312.     cmpl a5@(-20),d0
  5313.     jls L577
  5314.     moveq #1,d0
  5315.     jra L528
  5316. L577:
  5317.     nop
  5318. L578:
  5319.     subql #1,a5@(-8)
  5320.     moveq #-1,d5
  5321.     cmpl a5@(-8),d5
  5322.     jne L580
  5323.     jra L579
  5324. L580:
  5325.     movel a5@(-4),d0
  5326.     movel d0,d1
  5327.     movel d1,d0
  5328.     asll #2,d0
  5329.     lea a5@(0,d0:l),a0
  5330.     movel a5@(-12),a0@(-1312)
  5331.     addql #1,a5@(-4)
  5332.     jra L578
  5333. L579:
  5334.     jra L581
  5335. L571:
  5336.     moveq #17,d5
  5337.     cmpl a5@(-8),d5
  5338.     jne L582
  5339. L583:
  5340.     moveq #2,d5
  5341.     cmpl d3,d5
  5342.     jcc L585
  5343.     jra L584
  5344. L585:
  5345.     movel _inptr,d5
  5346.     cmpl _insize,d5
  5347.     jcc L586
  5348.     movel _inbuf,a0
  5349.     addl _inptr,a0
  5350.     clrl d0
  5351.     moveb a0@,d0
  5352.     asll d3,d0
  5353.     orl d0,d2
  5354.     addql #1,_inptr
  5355.     jra L587
  5356. L586:
  5357.     jbsr _fill_inbuf
  5358.     clrl d1
  5359.     moveb d0,d1
  5360.     movel d1,d0
  5361.     asll d3,d0
  5362.     orl d0,d2
  5363. L587:
  5364.     addql #8,d3
  5365.     jra L583
  5366. L584:
  5367.     moveq #7,d0
  5368.     andl d2,d0
  5369.     movel d0,d5
  5370.     addql #3,d5
  5371.     movel d5,a5@(-8)
  5372.     lsrl #3,d2
  5373.     subql #3,d3
  5374.     movel a5@(-4),d0
  5375.     addl a5@(-8),d0
  5376.     cmpl a5@(-20),d0
  5377.     jls L588
  5378.     moveq #1,d0
  5379.     jra L528
  5380. L588:
  5381.     nop
  5382. L589:
  5383.     subql #1,a5@(-8)
  5384.     moveq #-1,d5
  5385.     cmpl a5@(-8),d5
  5386.     jne L591
  5387.     jra L590
  5388. L591:
  5389.     movel a5@(-4),d0
  5390.     movel d0,d1
  5391.     movel d1,d0
  5392.     asll #2,d0
  5393.     lea a5@(0,d0:l),a0
  5394.     clrl a0@(-1312)
  5395.     addql #1,a5@(-4)
  5396.     jra L589
  5397. L590:
  5398.     clrl a5@(-12)
  5399.     jra L592
  5400. L582:
  5401. L593:
  5402.     moveq #6,d5
  5403.     cmpl d3,d5
  5404.     jcc L595
  5405.     jra L594
  5406. L595:
  5407.     movel _inptr,d5
  5408.     cmpl _insize,d5
  5409.     jcc L596
  5410.     movel _inbuf,a0
  5411.     addl _inptr,a0
  5412.     clrl d0
  5413.     moveb a0@,d0
  5414.     asll d3,d0
  5415.     orl d0,d2
  5416.     addql #1,_inptr
  5417.     jra L597
  5418. L596:
  5419.     jbsr _fill_inbuf
  5420.     clrl d1
  5421.     moveb d0,d1
  5422.     movel d1,d0
  5423.     asll d3,d0
  5424.     orl d0,d2
  5425. L597:
  5426.     addql #8,d3
  5427.     jra L593
  5428. L594:
  5429.     moveq #127,d0
  5430.     andl d2,d0
  5431.     moveq #11,d5
  5432.     addl d0,d5
  5433.     movel d5,a5@(-8)
  5434.     lsrl #7,d2
  5435.     subql #7,d3
  5436.     movel a5@(-4),d0
  5437.     addl a5@(-8),d0
  5438.     cmpl a5@(-20),d0
  5439.     jls L598
  5440.     moveq #1,d0
  5441.     jra L528
  5442. L598:
  5443.     nop
  5444. L599:
  5445.     subql #1,a5@(-8)
  5446.     moveq #-1,d5
  5447.     cmpl a5@(-8),d5
  5448.     jne L601
  5449.     jra L600
  5450. L601:
  5451.     movel a5@(-4),d0
  5452.     movel d0,d1
  5453.     movel d1,d0
  5454.     asll #2,d0
  5455.     lea a5@(0,d0:l),a0
  5456.     clrl a0@(-1312)
  5457.     addql #1,a5@(-4)
  5458.     jra L599
  5459. L600:
  5460.     clrl a5@(-12)
  5461. L592:
  5462. L581:
  5463. L570:
  5464.     jra L561
  5465. L562:
  5466.     movel a5@(-24),sp@-
  5467.     jbsr _huft_free
  5468.     addqw #4,sp
  5469.     movel d2,_bb
  5470.     movel d3,_bk
  5471.     movel _lbits,a5@(-32)
  5472.     lea a5@(-32),a0
  5473.     movel a0,sp@-
  5474.     lea a5@(-24),a0
  5475.     movel a0,sp@-
  5476.     pea _cplext
  5477.     pea _cplens
  5478.     pea 257:w
  5479.     movel a5@(-44),sp@-
  5480.     lea a5@(-1312),a0
  5481.     movel a0,sp@-
  5482.     jbsr _huft_build
  5483.     addw #28,sp
  5484.     movel d0,a5@(-4)
  5485.     tstl a5@(-4)
  5486.     jeq L602
  5487.     moveq #1,d5
  5488.     cmpl a5@(-4),d5
  5489.     jne L603
  5490.     pea LC134
  5491.     jbsr _error
  5492.     addqw #4,sp
  5493.     movel a5@(-24),sp@-
  5494.     jbsr _huft_free
  5495.     addqw #4,sp
  5496. L603:
  5497.     movel a5@(-4),d0
  5498.     jra L528
  5499. L602:
  5500.     movel _dbits,a5@(-36)
  5501.     lea a5@(-36),a0
  5502.     movel a0,sp@-
  5503.     lea a5@(-28),a0
  5504.     movel a0,sp@-
  5505.     pea _cpdext
  5506.     pea _cpdist
  5507.     clrl sp@-
  5508.     movel a5@(-48),sp@-
  5509.     lea a5@(-1312),a0
  5510.     movel a5@(-44),d0
  5511.     movel d0,d1
  5512.     movel d1,d0
  5513.     asll #2,d0
  5514.     addl d0,a0
  5515.     movel a0,sp@-
  5516.     jbsr _huft_build
  5517.     addw #28,sp
  5518.     movel d0,a5@(-4)
  5519.     tstl a5@(-4)
  5520.     jeq L604
  5521.     moveq #1,d5
  5522.     cmpl a5@(-4),d5
  5523.     jne L605
  5524.     pea LC135
  5525.     jbsr _error
  5526.     addqw #4,sp
  5527.     movel a5@(-28),sp@-
  5528.     jbsr _huft_free
  5529.     addqw #4,sp
  5530. L605:
  5531.     movel a5@(-24),sp@-
  5532.     jbsr _huft_free
  5533.     addqw #4,sp
  5534.     movel a5@(-4),d0
  5535.     jra L528
  5536. L604:
  5537.     movel a5@(-36),sp@-
  5538.     movel a5@(-32),sp@-
  5539.     movel a5@(-28),sp@-
  5540.     movel a5@(-24),sp@-
  5541.     jbsr _inflate_codes
  5542.     addqw #8,sp
  5543.     addqw #8,sp
  5544.     tstl d0
  5545.     jeq L606
  5546.     moveq #1,d0
  5547.     jra L528
  5548. L606:
  5549.     movel a5@(-24),sp@-
  5550.     jbsr _huft_free
  5551.     addqw #4,sp
  5552.     movel a5@(-28),sp@-
  5553.     jbsr _huft_free
  5554.     addqw #4,sp
  5555.     clrl d0
  5556.     jra L528
  5557. L528:
  5558.     moveml a5@(-1328),#0x3c
  5559.     unlk a5
  5560.     rts
  5561.     .even
  5562. _inflate_block:
  5563.     link a5,#-4
  5564.     moveml #0x3800,sp@-
  5565.     movel _bb,d2
  5566.     movel _bk,d3
  5567. L608:
  5568.     tstl d3
  5569.     jeq L610
  5570.     jra L609
  5571. L610:
  5572.     movel _inptr,d4
  5573.     cmpl _insize,d4
  5574.     jcc L611
  5575.     movel _inbuf,a0
  5576.     addl _inptr,a0
  5577.     clrl d0
  5578.     moveb a0@,d0
  5579.     asll d3,d0
  5580.     orl d0,d2
  5581.     addql #1,_inptr
  5582.     jra L612
  5583. L611:
  5584.     jbsr _fill_inbuf
  5585.     clrl d1
  5586.     moveb d0,d1
  5587.     movel d1,d0
  5588.     asll d3,d0
  5589.     orl d0,d2
  5590. L612:
  5591.     addql #8,d3
  5592.     jra L608
  5593. L609:
  5594.     movel a5@(8),a0
  5595.     moveq #1,d4
  5596.     andl d2,d4
  5597.     movel d4,a0@
  5598.     lsrl #1,d2
  5599.     subql #1,d3
  5600. L613:
  5601.     moveq #1,d4
  5602.     cmpl d3,d4
  5603.     jcc L615
  5604.     jra L614
  5605. L615:
  5606.     movel _inptr,d4
  5607.     cmpl _insize,d4
  5608.     jcc L616
  5609.     movel _inbuf,a0
  5610.     addl _inptr,a0
  5611.     clrl d0
  5612.     moveb a0@,d0
  5613.     asll d3,d0
  5614.     orl d0,d2
  5615.     addql #1,_inptr
  5616.     jra L617
  5617. L616:
  5618.     jbsr _fill_inbuf
  5619.     clrl d1
  5620.     moveb d0,d1
  5621.     movel d1,d0
  5622.     asll d3,d0
  5623.     orl d0,d2
  5624. L617:
  5625.     addql #8,d3
  5626.     jra L613
  5627. L614:
  5628.     moveq #3,d4
  5629.     andl d2,d4
  5630.     movel d4,a5@(-4)
  5631.     lsrl #2,d2
  5632.     subql #2,d3
  5633.     movel d2,_bb
  5634.     movel d3,_bk
  5635.     moveq #2,d4
  5636.     cmpl a5@(-4),d4
  5637.     jne L618
  5638.     jbsr _inflate_dynamic
  5639.     movel d0,d1
  5640.     movel d1,d0
  5641.     jra L607
  5642. L618:
  5643.     tstl a5@(-4)
  5644.     jne L619
  5645.     jbsr _inflate_stored
  5646.     movel d0,d1
  5647.     movel d1,d0
  5648.     jra L607
  5649. L619:
  5650.     moveq #1,d4
  5651.     cmpl a5@(-4),d4
  5652.     jne L620
  5653.     jbsr _inflate_fixed
  5654.     movel d0,d1
  5655.     movel d1,d0
  5656.     jra L607
  5657. L620:
  5658.     moveq #2,d0
  5659.     jra L607
  5660. L607:
  5661.     moveml a5@(-16),#0x1c
  5662.     unlk a5
  5663.     rts
  5664.     .even
  5665. _inflate:
  5666.     link a5,#-16
  5667.     clrl _outcnt
  5668.     clrl _bk
  5669.     clrl _bb
  5670.     clrl a5@(-12)
  5671. L622:
  5672.     clrl _hufts
  5673.     lea a5@(-16),a0
  5674.     movel a0,sp@-
  5675.     jbsr _gzip_mark
  5676.     addqw #4,sp
  5677.     lea a5@(-4),a0
  5678.     movel a0,sp@-
  5679.     jbsr _inflate_block
  5680.     addqw #4,sp
  5681.     movel d0,a5@(-8)
  5682.     tstl a5@(-8)
  5683.     jeq L625
  5684.     lea a5@(-16),a0
  5685.     movel a0,sp@-
  5686.     jbsr _gzip_release
  5687.     addqw #4,sp
  5688.     movel a5@(-8),d0
  5689.     jra L621
  5690. L625:
  5691.     lea a5@(-16),a0
  5692.     movel a0,sp@-
  5693.     jbsr _gzip_release
  5694.     addqw #4,sp
  5695.     movel _hufts,d1
  5696.     cmpl a5@(-12),d1
  5697.     jls L626
  5698.     movel _hufts,a5@(-12)
  5699. L626:
  5700. L624:
  5701.     tstl a5@(-4)
  5702.     jeq L627
  5703.     jra L623
  5704. L627:
  5705.     jra L622
  5706. L623:
  5707.     nop
  5708. L628:
  5709.     moveq #7,d1
  5710.     cmpl _bk,d1
  5711.     jcs L630
  5712.     jra L629
  5713. L630:
  5714.     subql #8,_bk
  5715.     subql #1,_inptr
  5716.     jra L628
  5717. L629:
  5718.     jbsr _flush_window
  5719.     clrl d0
  5720.     jra L621
  5721. L621:
  5722.     unlk a5
  5723.     rts
  5724. .data
  5725.     .even
  5726. _crc:
  5727.     .long -1
  5728.     .even
  5729. _p.82:
  5730.     .long 0
  5731.     .long 1
  5732.     .long 2
  5733.     .long 4
  5734.     .long 5
  5735.     .long 7
  5736.     .long 8
  5737.     .long 10
  5738.     .long 11
  5739.     .long 12
  5740.     .long 16
  5741.     .long 22
  5742.     .long 23
  5743.     .long 26
  5744. .text
  5745.     .even
  5746. _makecrc:
  5747.     link a5,#-16
  5748.     movel d2,sp@-
  5749.     clrl a5@(-8)
  5750.     clrl a5@(-12)
  5751. L632:
  5752.     moveq #13,d2
  5753.     cmpl a5@(-12),d2
  5754.     jcc L635
  5755.     jra L633
  5756. L635:
  5757.     movel a5@(-12),d0
  5758.     movel d0,d1
  5759.     movel d1,d0
  5760.     asll #2,d0
  5761.     lea _p.82,a0
  5762.     moveq #31,d2
  5763.     subl a0@(d0:l),d2
  5764.     movel d2,d0
  5765.     moveq #1,d1
  5766.     movel d1,d2
  5767.     asll d0,d2
  5768.     movel d2,d0
  5769.     orl d0,a5@(-8)
  5770. L634:
  5771.     addql #1,a5@(-12)
  5772.     jra L632
  5773. L633:
  5774.     clrl _crc_32_tab
  5775.     moveq #1,d2
  5776.     movel d2,a5@(-12)
  5777. L636:
  5778.     cmpl #255,a5@(-12)
  5779.     jle L639
  5780.     jra L637
  5781. L639:
  5782.     clrl a5@(-4)
  5783.     movel a5@(-12),d2
  5784.     orw #256,d2
  5785.     movel d2,a5@(-16)
  5786. L640:
  5787.     moveq #1,d2
  5788.     cmpl a5@(-16),d2
  5789.     jne L643
  5790.     jra L641
  5791. L643:
  5792.     movel a5@(-4),d1
  5793.     movel d1,d0
  5794.     lsrl #1,d0
  5795.     moveq #1,d1
  5796.     andl a5@(-4),d1
  5797.     tstl d1
  5798.     jeq L644
  5799.     movel a5@(-8),d2
  5800.     eorl d2,d0
  5801. L644:
  5802.     movel d0,a5@(-4)
  5803.     moveq #1,d0
  5804.     andl a5@(-16),d0
  5805.     tstl d0
  5806.     jeq L645
  5807.     movel a5@(-8),d2
  5808.     eorl d2,a5@(-4)
  5809. L645:
  5810. L642:
  5811.     movel a5@(-16),d0
  5812.     movel d0,d1
  5813.     asrl #1,d1
  5814.     movel d1,a5@(-16)
  5815.     jra L640
  5816. L641:
  5817.     movel a5@(-12),d0
  5818.     movel d0,d1
  5819.     movel d1,d0
  5820.     asll #2,d0
  5821.     lea _crc_32_tab,a0
  5822.     movel a5@(-4),a0@(d0:l)
  5823. L638:
  5824.     addql #1,a5@(-12)
  5825.     jra L636
  5826. L637:
  5827. L631:
  5828.     movel a5@(-20),d2
  5829.     unlk a5
  5830.     rts
  5831. LC136:
  5832.     .ascii "bad gzip magic numbers\0"
  5833. LC137:
  5834.     .ascii "internal error, invalid method\0"
  5835. LC138:
  5836.     .ascii "Input is encrypted\12\0"
  5837. LC139:
  5838.     .ascii "Multi part input\12\0"
  5839. LC140:
  5840.     .ascii "Input has invalid flags\12\0"
  5841. LC141:
  5842.     .ascii "invalid compressed format (err=1)\0"
  5843. LC142:
  5844.     .ascii "invalid compressed format (err=2)\0"
  5845. LC143:
  5846.     .ascii "out of memory\0"
  5847. LC144:
  5848.     .ascii "invalid compressed format (other)\0"
  5849. LC145:
  5850.     .ascii "crc error\0"
  5851. LC146:
  5852.     .ascii "length error\0"
  5853.     .even
  5854. _gunzip:
  5855.     link a5,#-24
  5856.     movel d3,sp@-
  5857.     movel d2,sp@-
  5858.     clrl a5@(-10)
  5859.     clrl a5@(-14)
  5860.     movel _inptr,d3
  5861.     cmpl _insize,d3
  5862.     jcc L647
  5863.     movel _inbuf,a0
  5864.     addl _inptr,a0
  5865.     moveb a0@,d2
  5866.     addql #1,_inptr
  5867.     jra L648
  5868. L647:
  5869.     jbsr _fill_inbuf
  5870.     moveb d0,d2
  5871. L648:
  5872.     moveb d2,a5@(-4)
  5873.     movel _inptr,d3
  5874.     cmpl _insize,d3
  5875.     jcc L649
  5876.     movel _inbuf,a0
  5877.     addl _inptr,a0
  5878.     moveb a0@,d2
  5879.     addql #1,_inptr
  5880.     jra L650
  5881. L649:
  5882.     jbsr _fill_inbuf
  5883.     moveb d0,d2
  5884. L650:
  5885.     moveb d2,a5@(-3)
  5886.     movel _inptr,d3
  5887.     cmpl _insize,d3
  5888.     jcc L651
  5889.     movel _inbuf,a0
  5890.     addl _inptr,a0
  5891.     moveb a0@,d2
  5892.     addql #1,_inptr
  5893.     jra L652
  5894. L651:
  5895.     jbsr _fill_inbuf
  5896.     moveb d0,d2
  5897. L652:
  5898.     moveb d2,a5@(-5)
  5899.     cmpb #31,a5@(-4)
  5900.     jne L654
  5901.     cmpb #139,a5@(-3)
  5902.     jeq L653
  5903.     cmpb #158,a5@(-3)
  5904.     jne L654
  5905.     jra L653
  5906. L654:
  5907.     pea LC136
  5908.     jbsr _error
  5909.     addqw #4,sp
  5910.     moveq #-1,d0
  5911.     jra L646
  5912. L653:
  5913.     cmpb #8,a5@(-5)
  5914.     jeq L655
  5915.     pea LC137
  5916.     jbsr _error
  5917.     addqw #4,sp
  5918.     moveq #-1,d0
  5919.     jra L646
  5920. L655:
  5921.     movel _inptr,d3
  5922.     cmpl _insize,d3
  5923.     jcc L656
  5924.     movel _inbuf,a0
  5925.     addl _inptr,a0
  5926.     moveb a0@,d2
  5927.     addql #1,_inptr
  5928.     jra L657
  5929. L656:
  5930.     jbsr _fill_inbuf
  5931.     moveb d0,d2
  5932. L657:
  5933.     moveb d2,a5@(-1)
  5934.     moveb a5@(-1),d0
  5935.     andb #32,d0
  5936.     tstb d0
  5937.     jeq L658
  5938.     pea LC138
  5939.     jbsr _error
  5940.     addqw #4,sp
  5941.     moveq #-1,d0
  5942.     jra L646
  5943. L658:
  5944.     moveb a5@(-1),d0
  5945.     andb #2,d0
  5946.     tstb d0
  5947.     jeq L659
  5948.     pea LC139
  5949.     jbsr _error
  5950.     addqw #4,sp
  5951.     moveq #-1,d0
  5952.     jra L646
  5953. L659:
  5954.     moveb a5@(-1),d0
  5955.     andb #192,d0
  5956.     tstb d0
  5957.     jeq L660
  5958.     pea LC140
  5959.     jbsr _error
  5960.     addqw #4,sp
  5961.     moveq #-1,d0
  5962.     jra L646
  5963. L660:
  5964.     movel _inptr,d3
  5965.     cmpl _insize,d3
  5966.     jcc L661
  5967.     movel _inbuf,d0
  5968.     addl _inptr,d0
  5969.     addql #1,_inptr
  5970.     jra L662
  5971. L661:
  5972.     jbsr _fill_inbuf
  5973. L662:
  5974.     movel _inptr,d3
  5975.     cmpl _insize,d3
  5976.     jcc L663
  5977.     movel _inbuf,d0
  5978.     addl _inptr,d0
  5979.     addql #1,_inptr
  5980.     jra L664
  5981. L663:
  5982.     jbsr _fill_inbuf
  5983. L664:
  5984.     movel _inptr,d3
  5985.     cmpl _insize,d3
  5986.     jcc L665
  5987.     movel _inbuf,d0
  5988.     addl _inptr,d0
  5989.     addql #1,_inptr
  5990.     jra L666
  5991. L665:
  5992.     jbsr _fill_inbuf
  5993. L666:
  5994.     movel _inptr,d3
  5995.     cmpl _insize,d3
  5996.     jcc L667
  5997.     movel _inbuf,d0
  5998.     addl _inptr,d0
  5999.     addql #1,_inptr
  6000.     jra L668
  6001. L667:
  6002.     jbsr _fill_inbuf
  6003. L668:
  6004.     movel _inptr,d3
  6005.     cmpl _insize,d3
  6006.     jcc L669
  6007.     movel _inbuf,d0
  6008.     addl _inptr,d0
  6009.     addql #1,_inptr
  6010.     jra L670
  6011. L669:
  6012.     jbsr _fill_inbuf
  6013. L670:
  6014.     movel _inptr,d3
  6015.     cmpl _insize,d3
  6016.     jcc L671
  6017.     movel _inbuf,d0
  6018.     addl _inptr,d0
  6019.     addql #1,_inptr
  6020.     jra L672
  6021. L671:
  6022.     jbsr _fill_inbuf
  6023. L672:
  6024.     moveb a5@(-1),d0
  6025.     andb #4,d0
  6026.     tstb d0
  6027.     jeq L673
  6028.     movel _inptr,d3
  6029.     cmpl _insize,d3
  6030.     jcc L674
  6031.     movel _inbuf,a0
  6032.     addl _inptr,a0
  6033.     clrl d2
  6034.     moveb a0@,d2
  6035.     addql #1,_inptr
  6036.     jra L675
  6037. L674:
  6038.     jbsr _fill_inbuf
  6039.     movel d0,d2
  6040. L675:
  6041.     movel d2,a5@(-22)
  6042.     movel _inptr,d3
  6043.     cmpl _insize,d3
  6044.     jcc L676
  6045.     movel _inbuf,a0
  6046.     addl _inptr,a0
  6047.     clrl d0
  6048.     moveb a0@,d0
  6049.     asll #8,d0
  6050.     movel d0,d2
  6051.     orl a5@(-22),d2
  6052.     addql #1,_inptr
  6053.     jra L677
  6054. L676:
  6055.     jbsr _fill_inbuf
  6056.     movel d0,d1
  6057.     asll #8,d1
  6058.     movel d1,d2
  6059.     orl a5@(-22),d2
  6060. L677:
  6061.     movel d2,a5@(-22)
  6062. L678:
  6063.     subql #1,a5@(-22)
  6064.     moveq #-1,d3
  6065.     cmpl a5@(-22),d3
  6066.     jne L680
  6067.     jra L679
  6068. L680:
  6069.     movel _inptr,d3
  6070.     cmpl _insize,d3
  6071.     jcc L681
  6072.     movel _inbuf,d0
  6073.     addl _inptr,d0
  6074.     addql #1,_inptr
  6075.     jra L682
  6076. L681:
  6077.     jbsr _fill_inbuf
  6078. L682:
  6079.     jra L678
  6080. L679:
  6081. L673:
  6082.     moveb a5@(-1),d0
  6083.     andb #8,d0
  6084.     tstb d0
  6085.     jeq L683
  6086. L684:
  6087.     movel _inptr,d3
  6088.     cmpl _insize,d3
  6089.     jcc L687
  6090.     movel _inbuf,a0
  6091.     addl _inptr,a0
  6092.     addql #1,_inptr
  6093.     tstb a0@
  6094.     jne L686
  6095.     jra L688
  6096. L687:
  6097.     jbsr _fill_inbuf
  6098.     tstl d0
  6099.     jne L686
  6100.     jra L688
  6101. L688:
  6102.     jra L685
  6103. L686:
  6104.     jra L684
  6105. L685:
  6106. L683:
  6107.     moveb a5@(-1),d0
  6108.     andb #16,d0
  6109.     tstb d0
  6110.     jeq L689
  6111. L690:
  6112.     movel _inptr,d3
  6113.     cmpl _insize,d3
  6114.     jcc L693
  6115.     movel _inbuf,a0
  6116.     addl _inptr,a0
  6117.     addql #1,_inptr
  6118.     tstb a0@
  6119.     jne L692
  6120.     jra L694
  6121. L693:
  6122.     jbsr _fill_inbuf
  6123.     tstl d0
  6124.     jne L692
  6125.     jra L694
  6126. L694:
  6127.     jra L691
  6128. L692:
  6129.     jra L690
  6130. L691:
  6131. L689:
  6132.     jbsr _inflate
  6133.     movel d0,a5@(-18)
  6134.     tstl a5@(-18)
  6135.     jeq L695
  6136.     movel a5@(-18),d0
  6137.     moveq #1,d3
  6138.     cmpl d0,d3
  6139.     jeq L698
  6140.     moveq #1,d3
  6141.     cmpl d0,d3
  6142.     jlt L703
  6143.     tstl d0
  6144.     jeq L697
  6145.     jra L701
  6146. L703:
  6147.     moveq #2,d3
  6148.     cmpl d0,d3
  6149.     jeq L699
  6150.     moveq #3,d3
  6151.     cmpl d0,d3
  6152.     jeq L700
  6153.     jra L701
  6154. L697:
  6155.     jra L696
  6156. L698:
  6157.     pea LC141
  6158.     jbsr _error
  6159.     addqw #4,sp
  6160.     jra L696
  6161. L699:
  6162.     pea LC142
  6163.     jbsr _error
  6164.     addqw #4,sp
  6165.     jra L696
  6166. L700:
  6167.     pea LC143
  6168.     jbsr _error
  6169.     addqw #4,sp
  6170.     jra L696
  6171. L701:
  6172.     pea LC144
  6173.     jbsr _error
  6174.     addqw #4,sp
  6175. L696:
  6176.     moveq #-1,d0
  6177.     jra L646
  6178. L695:
  6179.     movel _inptr,d3
  6180.     cmpl _insize,d3
  6181.     jcc L704
  6182.     movel _inbuf,a0
  6183.     addl _inptr,a0
  6184.     clrl d2
  6185.     moveb a0@,d2
  6186.     addql #1,_inptr
  6187.     jra L705
  6188. L704:
  6189.     jbsr _fill_inbuf
  6190.     movel d0,d2
  6191. L705:
  6192.     movel d2,a5@(-10)
  6193.     movel _inptr,d3
  6194.     cmpl _insize,d3
  6195.     jcc L706
  6196.     movel _inbuf,a0
  6197.     addl _inptr,a0
  6198.     clrl d0
  6199.     moveb a0@,d0
  6200.     asll #8,d0
  6201.     movel d0,d2
  6202.     orl a5@(-10),d2
  6203.     addql #1,_inptr
  6204.     jra L707
  6205. L706:
  6206.     jbsr _fill_inbuf
  6207.     movel d0,d1
  6208.     asll #8,d1
  6209.     movel d1,d2
  6210.     orl a5@(-10),d2
  6211. L707:
  6212.     movel d2,a5@(-10)
  6213.     movel _inptr,d3
  6214.     cmpl _insize,d3
  6215.     jcc L708
  6216.     movel _inbuf,a0
  6217.     addl _inptr,a0
  6218.     clrl d0
  6219.     moveb a0@,d0
  6220.     swap d0
  6221.     clrw d0
  6222.     movel d0,d2
  6223.     orl a5@(-10),d2
  6224.     addql #1,_inptr
  6225.     jra L709
  6226. L708:
  6227.     jbsr _fill_inbuf
  6228.     movel d0,d1
  6229.     swap d1
  6230.     clrw d1
  6231.     movel d1,d2
  6232.     orl a5@(-10),d2
  6233. L709:
  6234.     movel d2,a5@(-10)
  6235.     movel _inptr,d3
  6236.     cmpl _insize,d3
  6237.     jcc L710
  6238.     movel _inbuf,a0
  6239.     addl _inptr,a0
  6240.     clrl d0
  6241.     moveb a0@,d0
  6242.     moveq #24,d3
  6243.     asll d3,d0
  6244.     movel d0,d2
  6245.     orl a5@(-10),d2
  6246.     addql #1,_inptr
  6247.     jra L711
  6248. L710:
  6249.     jbsr _fill_inbuf
  6250.     movel d0,d1
  6251.     moveq #24,d3
  6252.     asll d3,d1
  6253.     movel d1,d2
  6254.     orl a5@(-10),d2
  6255. L711:
  6256.     movel d2,a5@(-10)
  6257.     movel _inptr,d3
  6258.     cmpl _insize,d3
  6259.     jcc L712
  6260.     movel _inbuf,a0
  6261.     addl _inptr,a0
  6262.     clrl d2
  6263.     moveb a0@,d2
  6264.     addql #1,_inptr
  6265.     jra L713
  6266. L712:
  6267.     jbsr _fill_inbuf
  6268.     movel d0,d2
  6269. L713:
  6270.     movel d2,a5@(-14)
  6271.     movel _inptr,d3
  6272.     cmpl _insize,d3
  6273.     jcc L714
  6274.     movel _inbuf,a0
  6275.     addl _inptr,a0
  6276.     clrl d0
  6277.     moveb a0@,d0
  6278.     asll #8,d0
  6279.     movel d0,d2
  6280.     orl a5@(-14),d2
  6281.     addql #1,_inptr
  6282.     jra L715
  6283. L714:
  6284.     jbsr _fill_inbuf
  6285.     movel d0,d1
  6286.     asll #8,d1
  6287.     movel d1,d2
  6288.     orl a5@(-14),d2
  6289. L715:
  6290.     movel d2,a5@(-14)
  6291.     movel _inptr,d3
  6292.     cmpl _insize,d3
  6293.     jcc L716
  6294.     movel _inbuf,a0
  6295.     addl _inptr,a0
  6296.     clrl d0
  6297.     moveb a0@,d0
  6298.     swap d0
  6299.     clrw d0
  6300.     movel d0,d2
  6301.     orl a5@(-14),d2
  6302.     addql #1,_inptr
  6303.     jra L717
  6304. L716:
  6305.     jbsr _fill_inbuf
  6306.     movel d0,d1
  6307.     swap d1
  6308.     clrw d1
  6309.     movel d1,d2
  6310.     orl a5@(-14),d2
  6311. L717:
  6312.     movel d2,a5@(-14)
  6313.     movel _inptr,d3
  6314.     cmpl _insize,d3
  6315.     jcc L718
  6316.     movel _inbuf,a0
  6317.     addl _inptr,a0
  6318.     clrl d0
  6319.     moveb a0@,d0
  6320.     moveq #24,d3
  6321.     asll d3,d0
  6322.     movel d0,d2
  6323.     orl a5@(-14),d2
  6324.     addql #1,_inptr
  6325.     jra L719
  6326. L718:
  6327.     jbsr _fill_inbuf
  6328.     movel d0,d1
  6329.     moveq #24,d3
  6330.     asll d3,d1
  6331.     movel d1,d2
  6332.     orl a5@(-14),d2
  6333. L719:
  6334.     movel d2,a5@(-14)
  6335.     movel _crc,d0
  6336.     notl d0
  6337.     cmpl a5@(-10),d0
  6338.     jeq L720
  6339.     pea LC145
  6340.     jbsr _error
  6341.     addqw #4,sp
  6342.     moveq #-1,d0
  6343.     jra L646
  6344. L720:
  6345.     movel a5@(-14),d3
  6346.     cmpl _bytes_out,d3
  6347.     jeq L721
  6348.     pea LC146
  6349.     jbsr _error
  6350.     addqw #4,sp
  6351.     moveq #-1,d0
  6352.     jra L646
  6353. L721:
  6354.     clrl d0
  6355.     jra L646
  6356. L646:
  6357.     movel a5@(-32),d2
  6358.     movel a5@(-28),d3
  6359.     unlk a5
  6360.     rts
  6361.     .even
  6362. _gzip_mark:
  6363.     link a5,#0
  6364. L722:
  6365.     unlk a5
  6366.     rts
  6367.     .even
  6368. _gzip_release:
  6369.     link a5,#0
  6370. L723:
  6371.     unlk a5
  6372.     rts
  6373.     .even
  6374. _fill_inbuf:
  6375.     link a5,#0
  6376.     movel a2,sp@-
  6377.     tstl _exit_code
  6378.     jeq L725
  6379.     moveq #-1,d0
  6380.     jra L724
  6381. L725:
  6382.     movel _linuxboot_args,a0
  6383.     pea 4096:w
  6384.     movel _inbuf,sp@-
  6385.     movel _Zinfd,sp@-
  6386.     movel a0@(1476),a2
  6387.     jbsr a2@
  6388.     addqw #8,sp
  6389.     addqw #4,sp
  6390.     movel d0,_insize
  6391.     tstl _insize
  6392.     jne L726
  6393.     moveq #-1,d0
  6394.     jra L724
  6395. L726:
  6396.     moveq #1,d1
  6397.     movel d1,_inptr
  6398.     movel _inbuf,a0
  6399.     clrl d0
  6400.     moveb a0@,d0
  6401.     jra L724
  6402. L724:
  6403.     movel a5@(-4),a2
  6404.     unlk a5
  6405.     rts
  6406. LC147:
  6407.     .ascii "Compressed image too large! Aborting.\12\0"
  6408. LC148:
  6409.     .ascii "Out of memory for decompresing kernel image\12\0"
  6410.     .even
  6411. _flush_window:
  6412.     link a5,#-20
  6413.     moveml #0x3020,sp@-
  6414.     movel _crc,a5@(-4)
  6415.     movel _Zwpos,d0
  6416.     movel d0,d1
  6417.     swap d1
  6418.     extl d1
  6419.     movel d1,a5@(-18)
  6420.     tstl _exit_code
  6421.     jeq L728
  6422.     jra L727
  6423. L728:
  6424.     moveq #31,d3
  6425.     cmpl a5@(-18),d3
  6426.     jge L729
  6427.     pea LC147
  6428.     jbsr _error
  6429.     addqw #4,sp
  6430.     jra L727
  6431. L729:
  6432.     movel a5@(-18),d0
  6433.     movel d0,d1
  6434.     movel d1,d0
  6435.     asll #2,d0
  6436.     lea _ZFile,a0
  6437.     tstl a0@(d0:l)
  6438.     jne L730
  6439.     pea 5:w
  6440.     movel #65536,sp@-
  6441.     jbsr _AllocMem
  6442.     addqw #8,sp
  6443.     movel a5@(-18),d1
  6444.     movel d1,d2
  6445.     movel d2,d1
  6446.     asll #2,d1
  6447.     lea _ZFile,a0
  6448.     movel d0,a0@(d1:l)
  6449.     tstl d0
  6450.     jne L731
  6451.     pea LC148
  6452.     jbsr _error
  6453.     addqw #4,sp
  6454.     jra L727
  6455. L731:
  6456. L730:
  6457.     movel _outcnt,sp@-
  6458.     movel _window,sp@-
  6459.     movel a5@(-18),d0
  6460.     movel d0,d1
  6461.     movel d1,d0
  6462.     asll #2,d0
  6463.     lea _ZFile,a0
  6464.     movel _Zwpos,d1
  6465.     andl #65535,d1
  6466.     movel d1,d3
  6467.     addl a0@(d0:l),d3
  6468.     movel d3,d0
  6469.     movel d0,sp@-
  6470.     jbsr _memcpy
  6471.     addqw #8,sp
  6472.     addqw #4,sp
  6473.     movel _outcnt,d3
  6474.     addl d3,_Zwpos
  6475.     movel _Zwpos,d0
  6476.     andl #1023,d0
  6477.     tstl d0
  6478.     jne L732
  6479.     movel _linuxboot_args,a0
  6480.     pea 46:w
  6481.     movel a0@(1460),a2
  6482.     jbsr a2@
  6483.     addqw #4,sp
  6484. L732:
  6485.     movel _window,a5@(-12)
  6486.     clrl a5@(-8)
  6487. L733:
  6488.     movel a5@(-8),d3
  6489.     cmpl _outcnt,d3
  6490.     jcs L736
  6491.     jra L734
  6492. L736:
  6493.     movel a5@(-12),a0
  6494.     moveb a0@,a5@(-13)
  6495.     addql #1,a5@(-12)
  6496.     clrl d0
  6497.     moveb a5@(-13),d0
  6498.     movel a5@(-4),d3
  6499.     eorl d3,d0
  6500.     movel d0,d1
  6501.     andl #255,d1
  6502.     movel d1,d2
  6503.     movel d2,d0
  6504.     asll #2,d0
  6505.     lea _crc_32_tab,a0
  6506.     movel a5@(-4),d2
  6507.     movel d2,d1
  6508.     lsrl #8,d1
  6509.     movel a0@(d0:l),d3
  6510.     eorl d1,d3
  6511.     movel d3,a5@(-4)
  6512. L735:
  6513.     addql #1,a5@(-8)
  6514.     jra L733
  6515. L734:
  6516.     movel a5@(-4),_crc
  6517.     movel _outcnt,d3
  6518.     addl d3,_bytes_out
  6519.     clrl _outcnt
  6520. L727:
  6521.     moveml a5@(-32),#0x40c
  6522.     unlk a5
  6523.     rts
  6524. LC149:
  6525.     .ascii "\12%s\0"
  6526.     .even
  6527. _error:
  6528.     link a5,#0
  6529.     movel a2,sp@-
  6530.     movel _linuxboot_args,a0
  6531.     movel a5@(8),sp@-
  6532.     pea LC149
  6533.     movel a0@(1464),a2
  6534.     jbsr a2@
  6535.     addqw #8,sp
  6536.     moveq #1,d0
  6537.     movel d0,_exit_code
  6538. L737:
  6539.     movel a5@(-4),a2
  6540.     unlk a5
  6541.     rts
  6542. LC150:
  6543.     .ascii "Couldn't allocate gunzip buffer\12\0"
  6544. LC151:
  6545.     .ascii "Couldn't allocate gunzip window\12\0"
  6546. LC152:
  6547.     .ascii "Couldn't allocate gunzip stack\12\0"
  6548. LC153:
  6549.     .ascii "Uncompressing kernel image \0"
  6550. LC154:
  6551.     .ascii "done\12\0"
  6552.     .even
  6553. _load_zkernel:
  6554.     link a5,#-12
  6555.     movel a2,sp@-
  6556.     movel d2,sp@-
  6557.     moveq #-1,d2
  6558.     movel d2,a5@(-8)
  6559.     clrl a5@(-4)
  6560. L740:
  6561.     moveq #31,d2
  6562.     cmpl a5@(-4),d2
  6563.     jge L743
  6564.     jra L741
  6565. L743:
  6566.     movel a5@(-4),d0
  6567.     movel d0,d1
  6568.     movel d1,d0
  6569.     asll #2,d0
  6570.     lea _ZFile,a0
  6571.     clrl a0@(d0:l)
  6572. L742:
  6573.     addql #1,a5@(-4)
  6574.     jra L740
  6575. L741:
  6576.     movel a5@(8),_Zinfd
  6577.     movel _linuxboot_args,a0
  6578.     clrl sp@-
  6579.     movel a5@(8),sp@-
  6580.     movel a0@(1472),a2
  6581.     jbsr a2@
  6582.     addqw #8,sp
  6583.     pea 5:w
  6584.     pea 4096:w
  6585.     jbsr _AllocMem
  6586.     addqw #8,sp
  6587.     movel d0,d1
  6588.     movel d1,_inbuf
  6589.     tstl d1
  6590.     jne L744
  6591.     movel _linuxboot_args,a0
  6592.     pea LC150
  6593.     movel a0@(1452),a2
  6594.     jbsr a2@
  6595.     addqw #4,sp
  6596.     jra L745
  6597. L744:
  6598.     pea 5:w
  6599.     movel #32768,sp@-
  6600.     jbsr _AllocMem
  6601.     addqw #8,sp
  6602.     movel d0,d1
  6603.     movel d1,_window
  6604.     tstl d1
  6605.     jne L746
  6606.     movel _linuxboot_args,a0
  6607.     pea LC151
  6608.     movel a0@(1452),a2
  6609.     jbsr a2@
  6610.     addqw #4,sp
  6611.     jra L747
  6612. L746:
  6613.     pea 5:w
  6614.     pea 16384:w
  6615.     jbsr _AllocMem
  6616.     addqw #8,sp
  6617.     movel d0,d1
  6618.     movel d1,a5@(-12)
  6619.     tstl d1
  6620.     jne L748
  6621.     movel _linuxboot_args,a0
  6622.     pea LC152
  6623.     movel a0@(1452),a2
  6624.     jbsr a2@
  6625.     addqw #4,sp
  6626.     jra L749
  6627. L748:
  6628.     movel _linuxboot_args,a0
  6629.     pea LC153
  6630.     movel a0@(1452),a2
  6631.     jbsr a2@
  6632.     addqw #4,sp
  6633.     jbsr _makecrc
  6634.     movel a5@(-12),d0
  6635.     addl #16384,d0
  6636.     movel d0,sp@-
  6637.     pea _gunzip
  6638.     jbsr _call_sub
  6639.     addqw #8,sp
  6640.     movel d0,a5@(-8)
  6641.     tstl a5@(-8)
  6642.     jne L750
  6643.     movel _linuxboot_args,a0
  6644.     pea LC154
  6645.     movel a0@(1452),a2
  6646.     jbsr a2@
  6647.     addqw #4,sp
  6648. L750:
  6649.     movel _Zwpos,_ZFileSize
  6650.     pea 16384:w
  6651.     movel a5@(-12),sp@-
  6652.     jbsr _FreeMem
  6653.     addqw #8,sp
  6654. L749:
  6655.     movel #32768,sp@-
  6656.     movel _window,sp@-
  6657.     jbsr _FreeMem
  6658.     addqw #8,sp
  6659.     clrl _window
  6660. L747:
  6661.     pea 4096:w
  6662.     movel _inbuf,sp@-
  6663.     jbsr _FreeMem
  6664.     addqw #8,sp
  6665.     clrl _inbuf
  6666. L745:
  6667.     movel _linuxboot_args,a0
  6668.     movel _Zinfd,sp@-
  6669.     movel a0@(1480),a2
  6670.     jbsr a2@
  6671.     addqw #4,sp
  6672.     movel a5@(-8),d0
  6673.     jra L739
  6674. L739:
  6675.     movel a5@(-20),d2
  6676.     movel a5@(-16),a2
  6677.     unlk a5
  6678.     rts
  6679.     .even
  6680. _KRead:
  6681.     link a5,#-16
  6682.     movel a2,sp@-
  6683.     movel d2,sp@-
  6684.     clrl a5@(-4)
  6685.     tstl _ZFileSize
  6686.     jne L752
  6687.     movel _linuxboot_args,a0
  6688.     movel a5@(16),sp@-
  6689.     movel a5@(12),sp@-
  6690.     movel a5@(8),sp@-
  6691.     movel a0@(1476),a2
  6692.     jbsr a2@
  6693.     addqw #8,sp
  6694.     addqw #4,sp
  6695.     movel d0,d1
  6696.     movel d1,d0
  6697.     jra L751
  6698. L752:
  6699.     movel _ZFpos,d0
  6700.     addl a5@(16),d0
  6701.     cmpl _ZFileSize,d0
  6702.     jle L753
  6703.     movel _ZFileSize,d2
  6704.     subl _ZFpos,d2
  6705.     movel d2,a5@(16)
  6706. L753:
  6707.     nop
  6708. L754:
  6709.     tstl a5@(16)
  6710.     jgt L756
  6711.     jra L755
  6712. L756:
  6713.     movel _ZFpos,d0
  6714.     movel d0,d1
  6715.     swap d1
  6716.     extl d1
  6717.     movel d1,a5@(-8)
  6718.     movel a5@(-8),d0
  6719.     addql #1,d0
  6720.     movel d0,d1
  6721.     swap d1
  6722.     clrw d1
  6723.     movel d1,a5@(-12)
  6724.     movel a5@(16),a5@(-16)
  6725.     movel _ZFpos,d0
  6726.     addl a5@(-16),d0
  6727.     cmpl a5@(-12),d0
  6728.     jls L757
  6729.     movel a5@(-12),d2
  6730.     subl _ZFpos,d2
  6731.     movel d2,a5@(-16)
  6732. L757:
  6733.     movel a5@(-16),sp@-
  6734.     movel a5@(-8),d0
  6735.     movel d0,d1
  6736.     movel d1,d0
  6737.     asll #2,d0
  6738.     lea _ZFile,a0
  6739.     movel _ZFpos,d1
  6740.     andl #65535,d1
  6741.     movel d1,d2
  6742.     addl a0@(d0:l),d2
  6743.     movel d2,d0
  6744.     movel d0,sp@-
  6745.     movel a5@(12),sp@-
  6746.     jbsr _memcpy
  6747.     addqw #8,sp
  6748.     addqw #4,sp
  6749.     movel a5@(-16),d2
  6750.     subl d2,a5@(16)
  6751.     movel a5@(-16),d2
  6752.     addl d2,a5@(12)
  6753.     movel a5@(-16),d2
  6754.     addl d2,a5@(-4)
  6755.     movel a5@(-16),d2
  6756.     addl d2,_ZFpos
  6757.     movel _ZFpos,d2
  6758.     cmpl a5@(-12),d2
  6759.     jne L758
  6760.     movel #65536,sp@-
  6761.     movel a5@(-8),d0
  6762.     movel d0,d1
  6763.     movel d1,d0
  6764.     asll #2,d0
  6765.     lea _ZFile,a0
  6766.     movel a0@(d0:l),sp@-
  6767.     jbsr _FreeMem
  6768.     addqw #8,sp
  6769.     movel a5@(-8),d0
  6770.     movel d0,d1
  6771.     movel d1,d0
  6772.     asll #2,d0
  6773.     lea _ZFile,a0
  6774.     clrl a0@(d0:l)
  6775. L758:
  6776.     jra L754
  6777. L755:
  6778.     movel a5@(-4),d0
  6779.     jra L751
  6780. L751:
  6781.     movel a5@(-24),d2
  6782.     movel a5@(-20),a2
  6783.     unlk a5
  6784.     rts
  6785.     .even
  6786. _KSeek:
  6787.     link a5,#-12
  6788.     movel a2,sp@-
  6789.     tstl _ZFileSize
  6790.     jne L760
  6791.     movel _linuxboot_args,a0
  6792.     movel a5@(12),sp@-
  6793.     movel a5@(8),sp@-
  6794.     movel a0@(1472),a2
  6795.     jbsr a2@
  6796.     addqw #8,sp
  6797.     movel d0,d1
  6798.     movel d1,d0
  6799.     jra L759
  6800. L760:
  6801.     movel _ZFpos,a5@(-4)
  6802.     movel a5@(12),_ZFpos
  6803.     tstl _ZFpos
  6804.     jge L761
  6805.     clrl _ZFpos
  6806.     moveq #-1,d0
  6807.     jra L759
  6808.     jra L762
  6809. L761:
  6810.     movel _ZFpos,a1
  6811.     cmpl _ZFileSize,a1
  6812.     jle L763
  6813.     movel _ZFileSize,_ZFpos
  6814.     moveq #-1,d0
  6815.     jra L759
  6816. L763:
  6817. L762:
  6818.     movel a5@(-4),d0
  6819.     movel d0,d1
  6820.     clrw d1
  6821.     swap d1
  6822.     movel d1,a5@(-8)
  6823.     movel _ZFpos,d0
  6824.     movel d0,d1
  6825.     swap d1
  6826.     extl d1
  6827.     movel d1,a5@(-12)
  6828. L764:
  6829.     movel a5@(-8),a1
  6830.     cmpl a5@(-12),a1
  6831.     jcs L766
  6832.     jra L765
  6833. L766:
  6834.     movel a5@(-8),d0
  6835.     movel d0,d1
  6836.     movel d1,d0
  6837.     asll #2,d0
  6838.     lea _ZFile,a0
  6839.     tstl a0@(d0:l)
  6840.     jeq L767
  6841.     movel #65536,sp@-
  6842.     movel a5@(-8),d0
  6843.     movel d0,d1
  6844.     movel d1,d0
  6845.     asll #2,d0
  6846.     lea _ZFile,a0
  6847.     movel a0@(d0:l),sp@-
  6848.     jbsr _FreeMem
  6849.     addqw #8,sp
  6850.     movel a5@(-8),d0
  6851.     movel d0,d1
  6852.     movel d1,d0
  6853.     asll #2,d0
  6854.     lea _ZFile,a0
  6855.     clrl a0@(d0:l)
  6856. L767:
  6857.     addql #1,a5@(-8)
  6858.     jra L764
  6859. L765:
  6860.     movel _ZFpos,d0
  6861.     jra L759
  6862. L759:
  6863.     movel a5@(-16),a2
  6864.     unlk a5
  6865.     rts
  6866.     .even
  6867. _free_zfile:
  6868.     link a5,#-4
  6869.     movel d2,sp@-
  6870.     nop
  6871.     clrl a5@(-4)
  6872. L769:
  6873.     moveq #31,d2
  6874.     cmpl a5@(-4),d2
  6875.     jge L772
  6876.     jra L770
  6877. L772:
  6878.     movel a5@(-4),d0
  6879.     movel d0,d1
  6880.     movel d1,d0
  6881.     asll #2,d0
  6882.     lea _ZFile,a0
  6883.     tstl a0@(d0:l)
  6884.     jeq L773
  6885.     movel #65536,sp@-
  6886.     movel a5@(-4),d0
  6887.     movel d0,d1
  6888.     movel d1,d0
  6889.     asll #2,d0
  6890.     lea _ZFile,a0
  6891.     movel a0@(d0:l),sp@-
  6892.     jbsr _FreeMem
  6893.     addqw #8,sp
  6894.     movel a5@(-4),d0
  6895.     movel d0,d1
  6896.     movel d1,d0
  6897.     asll #2,d0
  6898.     lea _ZFile,a0
  6899.     clrl a0@(d0:l)
  6900. L773:
  6901. L771:
  6902.     addql #1,a5@(-4)
  6903.     jra L769
  6904. L770:
  6905. L768:
  6906.     movel a5@(-8),d2
  6907.     unlk a5
  6908.     rts
  6909.     .even
  6910. _KClose:
  6911.     link a5,#0
  6912.     movel a2,sp@-
  6913.     tstl _ZFileSize
  6914.     jeq L775
  6915.     jbsr _free_zfile
  6916.     clrl _ZFileSize
  6917.     jra L776
  6918. L775:
  6919.     movel _linuxboot_args,a0
  6920.     movel a5@(8),sp@-
  6921.     movel a0@(1480),a2
  6922.     jbsr a2@
  6923.     addqw #4,sp
  6924. L776:
  6925.     clrl d0
  6926.     jra L774
  6927. L774:
  6928.     movel a5@(-4),a2
  6929.     unlk a5
  6930.     rts
  6931.     .even
  6932. _AllocMem:
  6933.     link a5,#0
  6934.     moveml #0x3002,sp@-
  6935.     movel a5@(8),d2
  6936.     movel a5@(12),d3
  6937.     movel _SysBase,a6
  6938.     movel d2,d0
  6939.     movel d3,d1
  6940. #APP
  6941.     jsr a6@(-0xc6)
  6942. #NO_APP
  6943.     jra L1
  6944. L1:
  6945.     moveml a5@(-12),#0x400c
  6946.     unlk a5
  6947.     rts
  6948.     .even
  6949. _AllocVec:
  6950.     link a5,#0
  6951.     moveml #0x3002,sp@-
  6952.     movel a5@(8),d2
  6953.     movel a5@(12),d3
  6954.     movel _SysBase,a6
  6955.     movel d2,d0
  6956.     movel d3,d1
  6957. #APP
  6958.     jsr a6@(-0x2ac)
  6959. #NO_APP
  6960.     jra L2
  6961. L2:
  6962.     moveml a5@(-12),#0x400c
  6963.     unlk a5
  6964.     rts
  6965.     .even
  6966. _CacheControl:
  6967.     link a5,#0
  6968.     moveml #0x3002,sp@-
  6969.     movel a5@(8),d2
  6970.     movel a5@(12),d3
  6971.     movel _SysBase,a6
  6972.     movel d2,d0
  6973.     movel d3,d1
  6974. #APP
  6975.     jsr a6@(-0x288)
  6976. #NO_APP
  6977.     jra L3
  6978. L3:
  6979.     moveml a5@(-12),#0x400c
  6980.     unlk a5
  6981.     rts
  6982.     .even
  6983. _Disable:
  6984.     link a5,#0
  6985.     movel a6,sp@-
  6986.     movel _SysBase,a6
  6987. #APP
  6988.     jsr a6@(-0x78)
  6989. #NO_APP
  6990. L4:
  6991.     movel a5@(-4),a6
  6992.     unlk a5
  6993.     rts
  6994.     .even
  6995. _Enable:
  6996.     link a5,#0
  6997.     movel a6,sp@-
  6998.     movel _SysBase,a6
  6999. #APP
  7000.     jsr a6@(-0x7e)
  7001. #NO_APP
  7002. L5:
  7003.     movel a5@(-4),a6
  7004.     unlk a5
  7005.     rts
  7006.     .even
  7007. _FindResident:
  7008.     link a5,#0
  7009.     movel a6,sp@-
  7010.     movel d2,sp@-
  7011.     movel a5@(8),d2
  7012.     movel _SysBase,a6
  7013.     movel d2,a1
  7014. #APP
  7015.     jsr a6@(-0x60)
  7016. #NO_APP
  7017.     jra L6
  7018. L6:
  7019.     movel a5@(-8),d2
  7020.     movel a5@(-4),a6
  7021.     unlk a5
  7022.     rts
  7023.     .even
  7024. _FreeMem:
  7025.     link a5,#0
  7026.     moveml #0x3002,sp@-
  7027.     movel a5@(8),d2
  7028.     movel a5@(12),d3
  7029.     movel _SysBase,a6
  7030.     movel d2,a1
  7031.     movel d3,d0
  7032. #APP
  7033.     jsr a6@(-0xd2)
  7034. #NO_APP
  7035. L7:
  7036.     moveml a5@(-12),#0x400c
  7037.     unlk a5
  7038.     rts
  7039.     .even
  7040. _FreeVec:
  7041.     link a5,#0
  7042.     movel a6,sp@-
  7043.     movel d2,sp@-
  7044.     movel a5@(8),d2
  7045.     movel _SysBase,a6
  7046.     movel d2,a1
  7047. #APP
  7048.     jsr a6@(-0x2b2)
  7049. #NO_APP
  7050. L8:
  7051.     movel a5@(-8),d2
  7052.     movel a5@(-4),a6
  7053.     unlk a5
  7054.     rts
  7055.     .even
  7056. _OpenResource:
  7057.     link a5,#0
  7058.     movel a6,sp@-
  7059.     movel d2,sp@-
  7060.     movel a5@(8),d2
  7061.     movel _SysBase,a6
  7062.     movel d2,a1
  7063. #APP
  7064.     jsr a6@(-0x1f2)
  7065. #NO_APP
  7066.     jra L9
  7067. L9:
  7068.     movel a5@(-8),d2
  7069.     movel a5@(-4),a6
  7070.     unlk a5
  7071.     rts
  7072.     .even
  7073. _SuperState:
  7074.     link a5,#0
  7075.     movel a6,sp@-
  7076.     movel _SysBase,a6
  7077. #APP
  7078.     jsr a6@(-0x96)
  7079. #NO_APP
  7080.     jra L10
  7081. L10:
  7082.     movel a5@(-4),a6
  7083.     unlk a5
  7084.     rts
  7085.     .even
  7086. _Supervisor:
  7087.     link a5,#0
  7088.     moveml #0x2102,sp@-
  7089.     movel a5@(8),d2
  7090.     movel _SysBase,a6
  7091.     movel d2,d7
  7092. #APP
  7093.     exg d7,a5;jsr a6@(-0x1e);exg d7,a5
  7094. #NO_APP
  7095.     jra L11
  7096. L11:
  7097.     moveml a5@(-12),#0x4084
  7098.     unlk a5
  7099.     rts
  7100.     .even
  7101. _FindConfigDev:
  7102.     link a5,#0
  7103.     moveml #0x3802,sp@-
  7104.     movel a5@(8),d2
  7105.     movel a5@(12),d3
  7106.     movel a5@(16),d4
  7107.     movel _ExpansionBase,a6
  7108.     movel d2,a0
  7109.     movel d3,d0
  7110.     movel d4,d1
  7111. #APP
  7112.     jsr a6@(-0x48)
  7113. #NO_APP
  7114.     jra L12
  7115. L12:
  7116.     moveml a5@(-16),#0x401c
  7117.     unlk a5
  7118.     rts
  7119.     .even
  7120. _LoadView:
  7121.     link a5,#0
  7122.     movel a6,sp@-
  7123.     movel d2,sp@-
  7124.     movel a5@(8),d2
  7125.     movel _GfxBase,a6
  7126.     movel d2,a1
  7127. #APP
  7128.     jsr a6@(-0xde)
  7129. #NO_APP
  7130. L13:
  7131.     movel a5@(-8),d2
  7132.     movel a5@(-4),a6
  7133.     unlk a5
  7134.     rts
  7135.     .even
  7136. _SetChipRev:
  7137.     link a5,#0
  7138.     movel a6,sp@-
  7139.     movel d2,sp@-
  7140.     movel a5@(8),d2
  7141.     movel _GfxBase,a6
  7142.     movel d2,d0
  7143. #APP
  7144.     jsr a6@(-0x378)
  7145. #NO_APP
  7146.     jra L14
  7147. L14:
  7148.     movel a5@(-8),d2
  7149.     movel a5@(-4),a6
  7150.     unlk a5
  7151.     rts
  7152.     .even
  7153. _disable_mmu:
  7154.     link a5,#0
  7155.     movel _SysBase,a0
  7156.     movew a0@(296),d0
  7157.     andw #8,d0
  7158.     tstw d0
  7159.     jeq L16
  7160. #APP
  7161.     moveq #0,d0;.long 0x4e7b0003;.long 0x4e7b0004;.long 0x4e7b0005;.long 0x4e7b0006;.long 0x4e7b0007
  7162. #NO_APP
  7163.     jra L17
  7164. L16:
  7165. #APP
  7166.     subl #4,sp;pmove tc,sp@;bclr #7,sp@;pmove sp@,tc;addl #4,sp
  7167. #NO_APP
  7168.     movel _SysBase,a0
  7169.     movew a0@(296),d0
  7170.     andw #4,d0
  7171.     tstw d0
  7172.     jeq L18
  7173. #APP
  7174.     clrl sp@-;.long 0xf0170800;.long 0xf0170c00;addql #4,sp
  7175. #NO_APP
  7176. L18:
  7177. L17:
  7178. L15:
  7179.     unlk a5
  7180.     rts
  7181. .lcomm _kexec,32
  7182. .lcomm _kexec_elf,52
  7183. .lcomm _linuxboot_args,4
  7184. .comm _bi,1428
  7185. .lcomm _compat_bootinfo,1422
  7186. .lcomm _bi_size,4
  7187. .lcomm _bi_union,4096
  7188. .lcomm _boardresetfuncs,64
  7189. .lcomm _ZFile,128
  7190. .lcomm _inbuf,4
  7191. .lcomm _window,4
  7192. .lcomm _bb,4
  7193. .lcomm _bk,4
  7194. .lcomm _hufts,4
  7195. .lcomm _crc_32_tab,1024
  7196.     .even
  7197. _call_sub:
  7198.     link a5,#0
  7199.     moveml #0x3020,sp@-
  7200.     movel a5@(8),d2
  7201.     movel a5@(12),d3
  7202.     movel d2,a0
  7203.     movel d3,a1
  7204. #APP
  7205.     movel sp,a2;movel a1,sp;jsr a0@;movel a2,sp
  7206. #NO_APP
  7207.     jra L738
  7208. L738:
  7209.     moveml a5@(-12),#0x40c
  7210.     unlk a5
  7211.     rts
  7212.